我有一个包含数据框的列表,每个数据框都有不同的行数。现在,我想向列表的每个数据帧添加行,直到列表的每个数据帧都有1000行。添加的行应该只包含NA。列表的所有数据帧都包含三列。
我首先定义了函数
adder <- function(x) {rbind(x, c(NA, NA, NA))}
然后使用lapply
将其应用于列表的每个数据帧dflisttest <- lapply(dflisttest, adder)
但是,这会为每个数据帧添加一行,而不是仅添加到少于1000行的数据行。我怎么能循环它以便列表的所有数据帧自动填充多达1000行?
答案 0 :(得分:0)
如果这是您的数据框:
df <- data.frame(x=c(rep(1,8),rep(2,4)),
y=c(rep(0,8),rep(5,4))
并且您希望绑定值(NA)直到其nrow = 1000,您可以尝试:
adder <- function(x) {
if(nrow(x)<1000)
x[(nrow(x)+1):1000,] <- NA
return(x)
}
此函数在最后一行之后的所有列中添加NA,直到第1000行
示例:在第12行之后添加了NA,这是df的原始大小。
> df <- adder(df)
> df[10:16,]
x y
10 2 5
11 2 5
12 2 5
13 NA NA
14 NA NA
15 NA NA
16 NA NA