首页 > 解决方案 > R - 使用 Reduce 比较对象的向量

问题描述

我正在尝试使用 Reduce 比较对象的向量 a

我更喜欢不使用现有包但仅使用 R 核心功能的解决方案

示例(简化为使用数字向量而不是对象):

test <- c(1,1,1,1,1)

Reduce("==",test)

[1] TRUE

我不明白为什么 == 有效,而 all.equal 无效

Reduce(all.equal,test)

[1] "Modes: character, numeric"              
[2] "Lengths: 3, 1"                          
[3] "target is character, current is numeric"

最后的评论:

不是重复的。我对比较对象而不是数值的解决方案感兴趣

数值向量元素的比较:参见 stackoverflow 上的现有解决方案 测试单个数值向量的所有元素之间的相等性

标签: robjectcomparereduce

解决方案


您可以尝试将每个元素与第一个元素进行比较identicalsapply

x <- list(list(1), list(1))
all(sapply(x[-1], identical, x[[1]]))
#[1] TRUE

x <- list(list(1), list(2))
all(sapply(x[-1], identical, x[[1]]))
#[1] FALSE

推荐阅读