我有两个不同大小的data.frame:
type1 type2
user1 user1
user2 user4
user3 user6
user4
如何获得比赛?结果将是
user1
user4
答案 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"