0

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

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

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

File1<-MyObject[[1]] 

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

4

2 回答 2

2

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

由于您曾经lapply加载过您的 excel 工作表,因此我假设这MyObject是一个单一的data.frames.

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

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

于 2017-06-13T15:11:24.127 回答
2

这是做你想做的吗?一个基本的R循环就像for (i in start:end) {}

for (i in 1:length(MyObject)) {
    assign(paste0("File", i), MyObject[[i]])
}
于 2017-06-13T15:00:27.930 回答