我正在尝试检查向量中的所有元素是否相同。我正在使用此代码:
if( isTRUE(for(i in 1:length(x)){x[1]==x[i]})){print(x[1])} else{print("several")
现在假设
x <- c(0,0,0,0,0,0,0,0,0,0,0)
此处,代码应返回“ 0”,如果
x <- c(0,0,0,0,0,1,0,0,0,0,0)
它应该返回“几个”。在这两种情况下,我都得到“几个”,为什么不按预期工作呢? 预先谢谢你。
答案 0 :(得分:2)
有一种更简单的方法:
if (length(unique(x)) == 1) {
print(x[1])
} else {
print("several")
}
如果要将x
的所有组件与第一个组件进行比较,则应使用all
而不是for循环:
if (all(x == x[1])) {
print(x[1])
} else {
print("several")
}
两种方法的结果相同。