R中的错误:要替换的项目数不是替换长度的倍数

时间:2016-11-12 12:33:49

标签: r

此代码向我显示此错误:"要替换的项目数不是替换长度的倍数"。我无法弄清楚问题是什么。

所以这是代码:

k <- c(0,0,0,0);
x <-30;
t <- c(10,20,30,35);
x1 <- x+t;
for(i in 1:4)
{
   k[i] <- 0:(100-x1[i]-1);
}

如果有人可以帮我解决这个问题,我将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

正如@akrun评论的那样,你首先为不同长度的向量预先分配长度为4的列表:

k <- vector('list', 4)
x <- 30
t <- c(10, 20, 30, 35)
x1 <- x + t

for(i in 1:4) k[[i]] <- 0:(100 - x1[i] - 1)

>k
#[[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 24 25 26 27 28 29 30 31
#[33] 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59

#[[2]]
 #[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 24 25 26 27 28 29 30 31
#[33] 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
# etc

顺便说一下,你不需要分号甚至花括号,因为循环适合一行。