从 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
。
我想了解如何在 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
。