R - 参数长度为零

时间:2014-02-06 07:04:38

标签: r

我已经尝试过查看其他问题,但没有一个能够达到标准。我试图比较两行,并根据比较的结果在行的末尾的新列中添加一个数字。我正在使用mtcars:

我使用的代码就是这样:

for (i in 1:nrow(mtcars)-1) {
    if (mtcars[i,6] > mtcars[i+1,6] ){
    mtcars[i,12] = 5
    }
}

其中col 12是新列。我收到以下错误消息:

Error in if (mtcars[i, 6] < mtcars[i + 1, 6]) mtcars[i, 12] = 10 : argument is of length zero

不应该有任何空参数,所以我不知道返回null参数是什么以及为什么这是一个问题。

由于 约翰

1 个答案:

答案 0 :(得分:2)

查看1:nrow(mtcars)-1

将其与1:(nrow(mtcars)-1)进行比较 # Note the parens aroud the right-hand-side of ':'

错误来自于尝试取mtcars[0, ]这将是一个零长度向量,这反过来会弄乱你的if子句


> 1:nrow(mtcars)-1
 [1]  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
[25] 24 25 26 27 28 29 30 31
> 1:(nrow(mtcars)-1)
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
[25] 25 26 27 28 29 30 31