Я предполагаю, что я просто этого не вижу, но все, что я нашел в Сети, в архивах Mailinglist или в FAQ, не могло действительно объяснить мою проблему.apply-strsplit-rowwise, включая сортировку и вложенную пасту
Ближайший я обнаружил, это: apply strsplit rowwise
У меня есть Д.Ф., с двумя столбцами символов и один числовой столбец. Заполненный как это:
df=data.frame(name1=c("A","B","C","D"),
name2=c("B","A","D","C"),
nums=c(1,1,4,4),
stringsAsFactors=F)
Теперь я хотел бы найти уникальные строки в этом, однако, только на основе двух столбцов имен. И для этих столбцов порядок столбцов не имеет значения, поэтому я не могу использовать duplicated
, если бы я понял его правильно.
Итак, я подумал о том, чтобы объединить два столбца столбцов по имени, сделать сортировку ролей и распечатать вектор paste
(длина = 2 в сочетании с чем-то вроде sapply
).
Однако я не получил его на работу.
До сих пор я использовал цикл for, но это требует времени на исходные данные.
for(i in 1:length(df$name1)){
mysort=sort(c(df$name1[i],df$name2[i]))
df$combname[i]=paste(mysort[1],mysort[2])
}
Любые предложения приветствуются. Возможно, я просто понимаю unique
и sapply
неправильным образом.