【问题标题】:Capturing matching and non-matching values between two dataframes in R在R中的两个数据帧之间捕获匹配和不匹配的值
【发布时间】:2014-02-17 09:11:54
【问题描述】:

我已经对此进行了大量阅读,但我还没有得到有效的答案。

我一直在 R 中使用 setdiff 函数来查看两个数据帧之间的匹配数。我知道我有 200 个观察结果中的 71 个匹配,其余的不匹配。

到目前为止,我只是这样做以获得匹配和不匹配值的数量:

check = setdiff(dataset1$variable1, dataset2$variable1)

如何返回匹配和不匹配值的列表?

谢谢,

埃德

【问题讨论】:

    标签: r compare set-difference


    【解决方案1】:

    所有匹配值都可以通过 Set Operations 中的 intersect 函数找到。两个变量中的所有值都可以通过 union 函数找到。所以在 union 中但不在 intersect 中的值是不匹配的。

    var1 <- LETTERS[1:5]
    var2 <- LETTERS[4:8]
    matched <- intersect(var1, var2)
    all <-  union(var1, var2)
    non.matched <- all[!all %in% matched]
    

    【讨论】:

    • 感谢 Ediwn,我现在已经设法使用这两个功能做到了。另一个问题,在您的代码中,“LETTERS [1:5]”和“LETTERS[4:8]”是什么意思?
    • 字母表的字母内置在 R 中。输入 LETTERS 将返回所有 26 个大写字母。在方括号内创建一个子集。所以 var1 是 A 直到 E,而 var2 是 D 直到 H。
    猜你喜欢
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多