将数据帧列表传递到循环中以同时组合和更改标题

use*_*260 4 for-loop r dataframe

我有一组具有不同标题的dfs,我需要逐行绑定:我希望更改cols的名称,以便每个都具有相同的标题.

DF1

 name, score
 smith, 3
 smith, 7
 smith, 5
Run Code Online (Sandbox Code Playgroud)

DF2

 type, price
 food, 3
 food, 5
 food, 2.6
Run Code Online (Sandbox Code Playgroud)

我希望将它组合起来,使每个标题具有相同的标题并按行组合.我有32个这些数据帧都有不同的标题,所以我打算使用循环

我列出了dfs

 groups <- c(df1, df2, df3, etc)
Run Code Online (Sandbox Code Playgroud)

然后尝试组合成一个空的df:

 new_df <- data.frame(words=character(),numbers=numeric())

 for (i in 1:length(groups))
 {
 x <- data.frame(words=character(),numbers=numeric())
 x[,1] <- groups[i]
 x[,2] <- groups[i+1]
 new_df <- rbind(new_df, x)
 }
Run Code Online (Sandbox Code Playgroud)

不幸的是,它只返回一个带有一堆警告的空df.谁能告诉我如何纠正这个?我期待new_df;

 words, numbers
 smith, 3
 smith, 7
 smith, 5
 food, 3
 food, 5
 food, 2.6    
Run Code Online (Sandbox Code Playgroud)

我相信对于比我更有经验的人来说这很容易.谢谢

Rol*_*and 5

你的32个data.frames为什么不能很好地组合在一起list?首先从野外捕捉它们:

dfList <- mget(paste0("df", 1:32))
Run Code Online (Sandbox Code Playgroud)

然后你可以使用lapply:

dfList <- lapply(dfList, setNames, nm = c("words", "numbers"))
Run Code Online (Sandbox Code Playgroud)

最后你们rbind:

DF <- do.call(rbind, dfList)
Run Code Online (Sandbox Code Playgroud)