【问题标题】:Compare two vector in R比较 R 中的两个向量
【发布时间】:2016-06-02 02:36:35
【问题描述】:

我有两个向量:a = c(1,2,3)b = c(1,2,3)

我想测试a是否与b完全相同。我知道sum(a == b) == length(a)可以给出结果,但是有什么优雅的方法吗?

【问题讨论】:

  • 您能否指定更多“完全相同”?数值相等,相同的 R 对象,属性?例如。比较 (1) identical(1, 1 + 1e-14) VS all.equal(1, 1 + 1e-14) VS (1 == (1 + 1e-14)), (2) identical(1, 1L) VS all.equal(1, 1L), (3) identical(1, c(a = 1)) VS all.equal(1, c(a = 1))

标签: r


【解决方案1】:

我们可以使用identical

identical(a,b)
#[1] TRUE

或者如果我们在比较中需要避免一些属性差异,请使用all.equal

all.equal(a,b, check.attributes=FALSE)
#[1] TRUE

或者在 OP 的帖子中使用类似的方法,我们可以使用 all 使其紧凑

all(a==b)
#[1] TRUE

上述方法的字符数比较少……

nchar("identical(a,b)")
#[1] 14
nchar("all(a==b)")
#[1] 9

【讨论】:

  • 很高兴知道该属性标志。谢谢。
【解决方案2】:

除了上面的答案;您也可以考虑使用“比较”包。

library(compare)
compareEqual(a,b)#TRUE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多