【问题标题】:compare every row in two vectors with each other比较两个向量中的每一行
【发布时间】:2014-10-21 22:55:12
【问题描述】:

我有一个庞大的数据库,我必须在其中测试不一致之处。其中一项测试是总结一些细分值并控制总数是否等于该值。总结和比较不是问题。我用过

which(a+b+c+d != e), 这也回馈了实际上正确的价值观。通过stackoverflow浏览表明R在这种计算方面存在一些问题。所以我尝试了 which(all.equal(sum(a,b,c,d),e)!=T), 这会给我正确的结果,因为它测试了近似相等,但它不会将 sum(a,b,c,d) 的每一行与 e 的每一行进行比较,而是将整个向量进行比较。

R 中是否有一个函数可以让我以 all.equal() 的方式测试每一行?

【问题讨论】:

    标签: r vector compare


    【解决方案1】:

    听起来您可能想将rowSums 与列子集一起使用。使用示例数据框df

    ( df <- data.frame(x = 1:4, y = 2:5, z = c(3, 8, 2, 9)) )
    #   x y z
    # 1 1 2 3
    # 2 2 3 8
    # 3 3 4 2
    # 4 4 5 9
    rowSums(df[c("x", "y")]) == df[["z"]]
    # [1]  TRUE FALSE FALSE  TRUE
    which(rowSums(df[c("x", "y")]) == df[["z"]])
    # [1] 1 4
    

    但就目前而言,您的问题尚不清楚。请更新它以准确显示您想要的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 2023-03-09
      • 2016-12-10
      • 2021-09-16
      相关资源
      最近更新 更多