【问题标题】:How to find the exact count of sheets in all excel files如何在所有excel文件中找到确切的工作表数
【发布时间】:2020-04-30 00:26:04
【问题描述】:

我想查找所有 excel 文件中的工作表数。这就是我所做的。

file_list <- list.files(pattern = '.xlsx',recursive = T)
head(file_list)

[1] "one.xlsx"        [2] "two.xlsx"        
[3] "three.xlsx"    [4] "four.xlsx"
[5] "five.xlsx"  

所以这个 file_list 变量包含大约 63 个 excel 文件。

for (num in file_list) {
   length( excel_sheets( num ) )
}

这会导致 NULL 结果。

但是当我手动操作时,我得到了计数。例如,

length( excel_sheets("../my_excel_directory/one.xlsx") )

[1] 2

提前感谢您的帮助!

【问题讨论】:

    标签: r excel dplyr filtering


    【解决方案1】:

    使用sapply

    file_list <- list.files(pattern = '.xlsx',recursive = TRUE, full.names = TRUE)
    
    length(unlist(sapply(file_list, readxl::excel_sheets)))
    

    【讨论】:

    • 谢谢@Ronak。我数到了 65。有没有办法将所有这些 excel 文件绑定在一起?
    • @RuiBarradas-ReinstateMonic readxl::excel_sheets 在 excel 中返​​回工作表名称的向量,使用 sapply 返回工作表名称列表,然后我们使用 length 计算所有工作表名称。虽然,我认为我应该在这里使用unlist
    • @Ronak - 当我运行更新的代码时,我收到了这个错误。 bind_rows_(x, .id) 中的错误:列 First Commit Date 无法从 POSIXct、POSIXt 转换为数字另外:有 50 个或更多警告(使用 warnings() 查看前 50 个)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 2014-01-28
    • 2013-08-01
    相关资源
    最近更新 更多