У меня есть фрейм данных, и мне нужно очистить его в соответствии с двумя значениями, которые являются «квази-идентичными» в строках. Мне нужно только удалить наблюдения, которые отличаются, но не идентичны. Я пытаюсь сделать это, используя agrep
, но эта функция также удаляет одинаковые наблюдения.Условные строки удаления: удалять квазиоднозначные строки, но не идентичные
Id<-c("RoLu1976","Rolu1976","RoLu1976","AlBl1989","ThSa1996")
Art<-c("Econometric Policy Evaluation: A Critique","Econometric Policy Evaluations A Critique","Econometric Policy Evaluation: A Critique", "Rules after discretion", "Expectations and the Nonneutrality of Lucas")
Id.1<-c("FiKy1989","FiKy1989","BeBe1983","JoSt1989","JoSt1990")
Art.1<-c("Notes on the Lucas Critique","Notes on the Lucas Critique","The Inconsistency of Optimal Plans","The Inconsistency","Notes on the Lucas")
N<-data.frame(Id,Art,Id.1,Art.1)
Квази одинаковые значения в указанном выше dataframe
в Art
колонке на двух первых наблюдений, которые отличаются только для s
и :
.
В приведенном выше случае окончательный кадр данных должен быть (обратите внимание, что одинаковые значения не удалять):
Id Art Id.1 Art.1
RoLu1976 Econometric Policy Evaluation: A Critique FiKy1989 Notes on the Lucas Critique
RoLu1976 Econometric Policy Evaluation: A Critique BeBe1983 The Inconsistency of Optimal Plans
AlBl1989 Rules after discretion JoSt1989 The Inconsistency
ThSa1996 Expectations and the Nonneutrality of Lucas JoSt1990 Notes on the Lucas
Что я сделал this:
yy = NULL
for(i in 1:length(N$Art)){
temp = agrep(N[i,"Art"],N$Art,value=T)
y = ifelse(any(N[i,"Art"]==temp),temp[1],N[i,"Art"])
yy = c(yy,y)
}
N$Art = yy
N.2 = N[!duplicated(N$Art), ]
Но удалить как значения: идентичны и квазиподобны.
Как я могу это сделать?
Вы действительно уверены, что хотите добавить критерии в колонку "Искусство"? Предположим, что вторая строка вашего оригинала 'N' имела« Art.1 », например. «Foobar» (т.е. отличается от «Art.1» любого из других «дубликатов»). Вы все еще хотите его бросить? –
@ Mathematical.coffee Было бы два критерия: колонка «Искусство» quiasi-идентична, но идентична в «Art.1» (или любой другой колонке) и удаляет все квази-идентичные значения в «Art» (не идентичные), но идентичны в «Art1». – Dan