2016-12-12 19 views
0

正直に言うと、私はこの数2列の類似しており、非類似の値を

df <-structure(list(d1 = 1:5, d2 = c(3L, 4L, 6L, NA, NA)), .Names = c("d1", 
"d2"), class = "data.frame", row.names = c(NA, -5L)) 

を行う方法を見つけ出すことはできませんこれは私がどの知りたいDF

d1 d2 
1 3 
2 4 
3 6 
4 
5 

で、 D2とD1の多くは、which the answer is:

2の値が類似して類似しており、それらは3,4

をどのように私はD2からのものが which the answer is:

1値と6

をD1と類似していないと最終的に私はであるとどのように多くのD1の知りたいどのように多くの、どの知りたい

which again the answer is:

3値及び1,2,5-

をD2と異なります

誰かがこれを行う方法を知っていますか?

答えて

2

あなたはsetdiff()intersect()を使用することができます。

intersect(df$d1, df$d2) 
# [1] 3 4 
setdiff(df$d2, df$d1) 
# [1] 6 NA 
setdiff(df$d1, df$d2) 
# [1] 1 2 5 
+0

が、それはあまりにも数を有することが可能であり、それはそれをしないようですか?第1の2のように、第2の1と第3の3のように? – nik

+0

@nik length()関数を使用します。 length()は、各ベクトルに含まれるアトミック要素の数を示します。 – hackR

+0

@hackR好きで受け入れます。これは私の人生の数時間を要した!ありがとう – nik