2017-08-01 3 views
2

私は重複した人名を含むベクトルを持っています。 (正しい順序ではありません。姓と名を入れ替えてグループ化します。

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)) 

答えて

2

我々はsplitlist要素にsortを行い、その後、duplicatedで「名前」のunique要素を抽出するlogicalベクトルを得ることができます

name[!duplicated(lapply(strsplit(name, "\\s+"), sort))] 
+0

それは動作します。ありがとう:) – Diablo

関連する問題