我有一个包含重复项人名的矢量。 (不正确的顺序。有时会互换名字和姓氏)
name <- c('jimmy fallows','fallows jimmy','brad pitt','clark michael','michael clark')
我需要从矢量中获取唯一的名称。
期望的输出:
c('jimmy fallows','brad pitt','michael clark')
unique(name)
没有解决这个问题。我尝试过使用strsplit
,但这会交换向量中的所有名称。我必须选择正确的交换。
testfunct <- function(x){
splt <- strsplit(x, ' ')
swap <- paste(splt[[1]][2],splt[[1]][1])
swap
}
unique(lapply(name,testfunct))
答案 0 :(得分:2)
我们可以对sort
split
元素list
进行操作,然后使用duplicated
获取logical
向量来提取unique
元素&#39;名称&#39;
name[!duplicated(lapply(strsplit(name, "\\s+"), sort))]