【发布时间】:2012-03-02 16:20:57
【问题描述】:
我有两列大小不同的data.frame:
type1 type2
user1 user1
user2 user4
user3 user6
user4
如何获得匹配项?结果是
user1
user4
【问题讨论】:
我有两列大小不同的data.frame:
type1 type2
user1 user1
user2 user4
user3 user6
user4
如何获得匹配项?结果是
user1
user4
【问题讨论】:
见?match或类似的?"%in%":
df$type1[df$type1 %in% df$type2]
【讨论】:
首先,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"
【讨论】: