R:参数长度为零时出错

时间:2019-01-18 11:35:22

标签: r if-statement

我有一个像这样的向量:

x <- c(0.9,0.9,0,0,0.9,0,0.8)

我想消除所有零并从中创建一个新向量,所以我创建了以下if语句:

if (x[i] == 0) {
y <- x[-(i)]}

但是出现以下错误:

Error in if (x[i] == 0) { : argument is of length zero

有人解决吗? 预先感谢!

1 个答案:

答案 0 :(得分:1)

我们不需要for的{​​{1}}循环。只需通过向量化即可完成

if/else

使用表达式y <- x[x != 0] 创建逻辑向量,并使用它对原始向量进行子集化(x != 0(带方括号)),然后将输出向量分配给具有标识符“ y”的变量