我的目录中有一堆Excel文件。有没有一种方法可以在单个命令中单独读取所有这些内容(而不是互相添加)。例如。
我的文件夹中有3个文件 File1.xlsx File2.xlsx File3.xlsx
R中的预期输出(而不是分别阅读)
File1
## should have File1 contents
File2
## should have File2 contents
File3
## should have File3 contents
答案 0 :(得分:0)
函数assign
应该为您提供帮助-它为以字符串形式给出的名称分配值。因此,以下代码可以完成您想要的操作(提示:使用gsub
清除非单词字符以创建有效的变量名):
library(readxl)
for (file in list.files(".", pattern = "xls$", full.names = TRUE))
assign(gsub("\\W", "", file), read_excel(file))
我们观察到工作空间中有两个对象:
> ls()
[1] "file_1xls" "file_2xls"
现在让我们看看它们是什么
> for(x in ls()) str(get(x))
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 1 obs. of 2 variables:
$ a: num 1
$ b: num 2
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 1 obs. of 2 variables:
$ c: num 4
$ d: num 5
答案 1 :(得分:0)
下面的代码
library(readxl)
file.list <- list.files(pattern='*.xlsx')
df.list <- lapply(file.list, read_excel)