从数据框列表向数据框添加行,直到列表中每个数据框的行数为 1000

Add rows to dataframes from list of dataframes until number of rows is 1000 for every data frame in list

我有一个包含数据框的列表,每个数据框都有不同的行数。现在我想向列表的每个数据框添加行,直到列表的每个数据框都有 1000 行。添加的行应该都只包含 NA。列表的所有数据框都包含三列。

我先定义了函数

adder <- function(x) {rbind(x, c(NA, NA, NA))}

然后使用 lapply

将其应用于列表的每个数据帧
dflisttest <- lapply(dflisttest, adder)

但是,这会向每个数据框添加一行,而不是仅向少于 1000 行的数据框添加一行。我如何循环它以便列表的所有数据帧自动填充多达 1000 行?

如果这是您的数据框:

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