1

我有以下数据。

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)

谁能帮我指出正确的方向。

4

1 回答 1

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" 
于 2012-05-14T23:03:24.630 回答