在数据框中选择相似且唯一的值

时间:2012-05-14 22:58:42

标签: r

我有以下数据。

df = data.frame(email_one=c("one@gkn.com","two@wern.com","three@fu.cin",
        "four@huo.com","five@hoi.com"), email_two=c("ten@hoinse.com",
        "four@huo.com","two@wern.com","five@hoi.com","six@ihoio.com"))

我想知道我是否可以使用R来选择两列中显示的值,仅显示在第一列中的唯一值,以及仅显示在第二列中的唯一值。

我最初试图在excel中解决这个问题,但我假设R中有一个更优雅的解决方案,甚至可能使用sqldf包。优选地具有内置函数而不是充满各种条件语句的用户定义函数 (df $ email_one == df $ email_two)

任何人都可以帮助我指出正确的方向。

1 个答案:

答案 0 :(得分:4)

您怀疑这些操作会有内置函数。在这种情况下,您希望功能intersect()setdiff()?intersect帮助页面上的一些相关功能一起记录。

# Elements present in both columns
intersect(df[[1]], df[[2]])
[1] "two@wern.com" "four@huo.com" "five@hoi.com"

# Elements of column 1 that are not in column 2 
setdiff(df[[1]], df[[2]])
[1] "one@gkn.com"  "three@fu.cin"

# Elements of column _2_ that are not in column _1_
setdiff(df[[2]], df[[1]])
[1] "ten@hoinse.com" "six@ihoio.com"