从 R 中的单个 object 重命名可变数量的数据帧

Renaming a variable number of dataframes from a single object in R

我想了解如何在 R 中编写循环以重命名可变数量的数据帧。
如果我 运行 此代码:

library("readxl")
path <- readxl_example("datasets.xls")
MyObject<-lapply(excel_sheets(path), read_excel, path = path)

我得到一个包含 4 个小标题的 object。如果我想将它们重命名为 File1 - File4,我可以使用

File1<-MyObject[[1]] 

依次类推。但是,我正在处理具有不同数量工作表的文件,因此最终在我的 object 中有可变数量的数据帧。 所以我的问题是;我如何告诉 R 将每个小标题重命名为 File1、File2 等,因为 object 中有尽可能多的小标题?我会欢迎一个具体的答案,但如果有一个教程讨论人们推荐的编写循环(针对初学者),我也很欢迎。

这是否符合您的要求? 基本的 R 循环就像 for (i in start:end) {}

for (i in 1:length(MyObject)) {
    assign(paste0("File", i), MyObject[[i]])
}

知道你刚刚评论的内容,我可以建议一个优于循环的恕我直言的解决方案:

由于您使用 lapply 加载了 excel 工作表,我假设 MyObject 是单个 data.frames.

的列表

所以要将它们组合成一个 data.frame,只需 运行 alldfs <- do.call(rbind,MyObject).

那应该给你一个没有任何循环或单一变量的 data.frame