我想在csv文件中的每行数据之后添加4行NA。
我尝试了以下操作,但它只在csv文件的末尾添加了4行,而不是在每行之后添加。
addrowdata<-read.csv('test.csv')
addrowdata[nrow(addrowdata)+4,] <- NA
这似乎应该很容易做但我正在努力。有没有人有任何想法?
这是我第一次发帖,所以我希望这是好的,对任何错误都很抱歉。我搜索了这个但找不到答案。
答案 0 :(得分:2)
1)rbind / by 使用rbind
这样的地方DF
是输入数据框:
do.call("rbind", by(DF, 1:nrow(DF), rbind, NA, NA, NA, NA))
或者,如果NA的数量取决于k
,那么:
k <- 4
do.call("rbind", do.call("by", c(list(DF, 1:nrow(DF), rbind), as.list(rep(NA, k)))))
2)rbind / indexing 使用rbind
的另一种方法是;
DF[c(rbind(1:nrow(DF), NA, NA, NA, NA)), ]
或者,如果NA的数量取决于k
,那么:
k <- 4
DF[do.call("rbind", c(list(1:nrow(DF)), as.list(rep(NA, k)))), ]
3)kronecker 如果DF
全部为数字,则可将其转换为矩阵,并采用kronecker产品给出以下矩阵:
as.matrix(DF) %x% c(1, NA, NA, NA, NA)
或者,如果NA的数量取决于k
,那么:
k <- 4
as.matrix(DF) %x% c(1, rep(NA, k))