我的列表如下
l = list(c("a", "b", "c"), c("a", "b", "c"), c("a", "b", "c"))
我想使用apply family functions检查每个值是否包含相同的值。
我想要回答
TRUE, TRUE, TRUE
答案 0 :(得分:3)
我们可以使用duplicated
duplicated(l)|duplicated(l, fromLast=TRUE)
#[1] TRUE TRUE TRUE
如果我们需要比较list
元素的所有组合,combn
是另一种方式
combn(seq_along(l), 2, FUN= function(x) all(l[[x[1]]] == l[[x[2]]]))
#[1] TRUE TRUE TRUE
答案 1 :(得分:2)
如果您真的想使用apply
系列,可以执行以下操作:
l = list(c("a", "b", "c"), c("a", "b", "c"), c("a", "b", "c"))
sapply(l, function(x) all.equal(x, l[[1]]))
# returns [1] TRUE TRUE TRUE
l = list(c("a", "b", "c"), c("a", "b", "c"), c("a", "b", "x"))
sapply(l, function(x) all.equal(x, l[[1]]))
# returns [1] "TRUE" "TRUE" "1 string mismatch"