2012-03-02 13 views
1

を抽出し、私は別のサイズを持つ2つの列のdata.frameを持っている:は、両方の列の値が一致

type1 type2 
user1 user1 
user2 user4 
user3 user6 
user4 

マッチを取得する方法?結果は

user1 
user4 

答えて

1

?matchまたは類似?"%in%"を参照されること:すべての

df$type1[df$type1 %in% df$type2] 
0

まず、data.frameの列はすべて同じ長さを持っている必要があります(http://cran.r-project.org/doc/manuals/R-intro.html#Data-frames.を参照)ので、私はなりますあなたの例の最後のエントリが空の文字列 ""であると仮定してください。

あなたが探しているのは、2つの列の「交差点」、つまり両方の列にある要素です。そのためにintersect関数を使用できます。

df <- data.frame(type1 = c("user1", "user2", "user3", "user4"), 
       type2 = c("user1", "user4", "user6", "")) 
df 
# type1 type2 
# 1 user1 user1 
# 2 user2 user4 
# 3 user3 user6 
# 4 user4  

intersect(df$type1, df$type2) 
# [1] "user1" "user4" 
関連する問題