提取两列中匹配的值

时间:2012-03-02 16:20:58

标签: string r dataframe

我有两个不同大小的data.frame:

type1    type2
user1  user1
user2  user4
user3  user6
user4  

如何获得比赛?结果将是

user1 
user4

2 个答案:

答案 0 :(得分:1)

请参阅?match或类似的?"%in%"

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

答案 1 :(得分: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"