使用R在CSV中的每一行之后添加额外的行

时间:2018-01-07 14:39:36

标签: r csv

我想在csv文件中的每行数据之后添加4行NA。

我尝试了以下操作,但它只在csv文件的末尾添加了4行,而不是在每行之后添加。

addrowdata<-read.csv('test.csv')
addrowdata[nrow(addrowdata)+4,] <- NA

这似乎应该很容易做但我正在努力。有没有人有任何想法?

这是我第一次发帖,所以我希望这是好的,对任何错误都很抱歉。我搜索了这个但找不到答案。

1 个答案:

答案 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))