不确定为什么我会收到此错误。我们可以不执行该语句吗?
asd <- c()
asd1 <- c()
if(asd == asd1)
{
pr <- 0
} else{
pr <- 1
}
Error in if (asd == asd1) { : argument is of length zero
我们不能在此处执行空值吗?因为asd也是0,而asd1也是0。我也不需要使用length(asd)== length(asd1)。但是asd == asd1应该正常工作吗?
答案 0 :(得分:1)
不,您正在尝试什么都不做。如果您不想使用长度,但实际上想检查两个向量是否相同:
identical(asd,asd1)
答案 1 :(得分:0)
使用所有功能
asd <- c()
asd1 <- c()
if(all(asd == asd1)){
pr <- 0
} else{
pr <- 1
}
> pr
[1] 0
答案 2 :(得分:0)
像大多数r函数一样,“ ==”是R中的矢量函数。因此==
(x,y)比较x和y的元素,返回相同大小的矢量。>
如dvd280所述,identical
是对象之间的“严格相等性”,用于测试一切是否完全相同 (我所说的一切都是指;结构的每个元素都必须相同)。
注意:它不会检查2个对象是否存储在内存中的同一位置。
all.equal
(带有一些参数)检查每个人的平等性。
c(TRUE,TRUE)&c(TRUE,FALSE)
返回
c(TRUE,FALSE)
很好,因为它是一种用于统计的语言:它依赖向量,而不是变量,而实际上在r中,变量是长度为1的向量。