R语言-循环读取excel内全部sheet

Python012

R语言-循环读取excel内全部sheet,第1张

excel_path <- c("C:/Users/lvjs9/Desktop/excel.xlsx")

inverse_unf_l<- read_excel(excel_path,1)[0]

for (i in (1:length(excel_sheets(excel_path)))){

inverse_unf_l <- rbind(inverse_unf_l , read_excel(excel_path,i))

}

很久没有这个需求了,忘了怎么操作。写一下记录作为备忘吧。

貌似很多包都可以实现,可要么就是写在了同一个sheet里,要么就是把行名自动省略了,改不回来的那种。

试了几次有一个包可以完美实现: openxlsx

比方说我有10个数据框。 res_PC1 , res_PC2 ...

然后想要分别写入10个sheet,sheet名是 PC1 , PC2 ...

并且需要保留行名。

完美实现。一开始最后一行写错了指令,被贴心的自动修正了。好评。

以下有三种方法:

根据需求读取对应的sheet1

综合来看,openxlsx的方法简单粗暴,而且经多名骨灰级玩家证明,罕有bug出现。乃R语言和Excel读取的绝对神器。不过笔者也发现,openxlsx包仅适用于.xlsx格式文件。前期的xls格式文件可能还需要前两种方法来读取。除了以上三种方法,还有类似的包如xlsx、readxl。此处依旧强推神器openxlsx。首先,.xlsx文件存储行数大大提升,从65536行数据提升到了104万条数据。其次,它十分便捷,函数所需参数较少。当然最后的最后,它可能需要的R的版本比较的新。

用 openxlsx包 写入Excel