在R中一一读取Excel文件(xlsx)

时间:2020-04-04 21:06:00

标签: shiny

我的目录中有一堆Excel文件。有没有一种方法可以在单个命令中单独读取所有这些内容(而不是互相添加)。例如。

我的文件夹中有3个文件 File1.xlsx File2.xlsx File3.xlsx

R中的预期输出(而不是分别阅读)

File1 
## should have File1 contents
File2
## should have File2 contents
File3
## should have File3 contents

2 个答案:

答案 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)

下面的代码

  • 加载readxl库
  • 在当前目录中以.xlsx扩展名创建文件的变量
  • 然后使用lapply()函数将文件读入数据框列表

library(readxl) file.list <- list.files(pattern='*.xlsx') df.list <- lapply(file.list, read_excel)

相关问题