R,错误替换有xx行,数据有yy

时间:2017-12-01 09:51:10

标签: r for-loop vector replace na

这似乎是基本的,但我无法解决这个问题。我有一种情况,我正在写一个for循环,在某些阶段它给我这个错误,“替换有3行,数据有4”

在我的for循环中,我每4行写一次数据,在某些时候,替换数据只有3个值。我希望在这种情况下,第4个值应该用NA填充。所以基本上长度为4,如果少说2,那么2个值要用NA填充。我怎么能得到这个。

错误消息示例 -

a1 <- data.frame(matrix(NA,nrow = 4,ncol = 0))
v1 <- c(1:3)

a1[,"b1"] <- v1

所以有些代码将v1转换为长度4并将最后一个值设为NA,以便我能够编写它。

2 个答案:

答案 0 :(得分:0)

一个简单的解决方案是添加(这也适用于length(v1)==4):

 v1 <- c(v1, rep(NA, nrow(a1) - length(v1)))

答案 1 :(得分:0)

你可以:

a1 <- data.frame(matrix(NA,nrow = 4,ncol = 0))
v1 <- c(1:3)
v2 <- rep(NA, nrow(a1))
v2[1:length(v1)] <- v1
a1[,"b1"] <- v2