2012-03-02 125 views
1

我有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.),所以我會假設你的例子中的最後一個條目只是一個空字符串「」。

您正在尋找的是您的兩列的「交集」,即可以在兩列中找到的元素。您可以使用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"