从数据框列表向数据框添加行,直到列表中每个数据框的行数为 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
我有一个包含数据框的列表,每个数据框都有不同的行数。现在我想向列表的每个数据框添加行,直到列表的每个数据框都有 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