在我的脚本中可以获取d[[x]]
“空”。我尝试使用else
来做到这一点,但是它不起作用。
如何编写else
以便给出检查零的结果?
for (x in 1:licznik3)
{
if(a[[x]] > d[[x]])
{
out3[[x]] <- wspolne3[[x]]
}
else (a[[x]] < d[[x]])
{
out3[[x]] <- NA
}
}
变量:
> a
[1] 0.1
> d
numeric(0)
> licznik3
[1] 16
d [[x]]中的错误:下标超出范围
示例:
我有3个循环。
如果a[[x]]
大于d[[x]]
此值转到out3
和下一个循环检查类似的情况。
我的问题是,在第二个循环(显示的代码)中,d[[x]]
可以为空(在上一个循环中,没有值大于a[[x]]
)
那我们要怎么做
> a
[1] 0.1
> d
numeric (0)
答案 0 :(得分:0)
只需添加其他检查,确保您的计数器又名licznik3;)不会超过向量d
的长度。如果超过break
for
循环。
a <- 1:10
licznik3 <- 7
out3 <- rep_along(a, NA)
wspolne3 <- 2:12
d <- -c(1, 4, 2)
for (x in 1:licznik3) {
if (x > length(d)) {
break
}
if (a[[x]] > d[[x]]) {
out3[[x]] <- wspolne3[[x]]
} else {
out3[[x]] <- NA
}
}
out3