比较两个以上对象的最佳方法是什么all.equal()?
这是一种方式:
foo <- c(1:10)
bar <- letters[1:10]
baz <- c(1:10)
# doesn't work because all.equal() returns a character vector when objects not all equal
all(sapply(list(bar, baz), all.equal, foo))
# this works
mode(sapply(list(bar, baz), all.equal, foo)) == "logical" #FALSE
bar <- c(1:10)
mode(sapply(list(bar, baz), all.equal, foo)) == "logical" #TRUE
Run Code Online (Sandbox Code Playgroud)
更新: @BrodieG指出上面的单行只告诉你对象是否全部相等,而all.equal()如果它们不相等则告诉你什么不相等.
r ×1