直接从 R 脚本中读取 Excel 文件。
直接从 R 脚本中读取 Excel 文件。
如何直接将 Excel 文件读取到 R 中?还是首先将数据导出为文本或 CSV 文件,然后将该文件导入 R?
admin 更改状态以发布 2023年5月23日
现在有了readxl:
readxl包使得从Excel获取数据并导入到R中变得容易。
与现有的包(如gdata、xlsx、xlsReadWrite等)相比,readxl没有外部依赖,因此易于在所有操作系统上安装和使用。它被设计用于处理存储在单个工作表中的表格数据。readxl是基于libxls C库构建而成的,该库抽象了许多底层二进制格式的复杂性。
它支持遗留的.xls格式和.xlsx格式。
可以从CRAN中获取readxl,也可以通过以下方式从github安装:
# install.packages("devtools") devtools::install_github("hadley/readxl")
使用方法
library(readxl) # read_excel reads both xls and xlsx files read_excel("my-old-spreadsheet.xls") read_excel("my-new-spreadsheet.xlsx") # Specify sheet with a number or name read_excel("my-spreadsheet.xls", sheet = "data") read_excel("my-spreadsheet.xls", sheet = 2) # If NAs are represented by something other than blank cells, # set the na argument read_excel("my-spreadsheet.xls", na = "NA")
请注意,虽然描述中说“没有外部依赖”,但它确实需要Rcpp
包,这又需要Rtools(对于Windows)或Xcode(对于OSX),这些是R之外的依赖。尽管很多人由于其他原因已经安装了它们。
让我重申 @Chase 的建议:使用 XLConnect 。使用 XLConnect 的原因,我的看法是:\n\n1. 跨平台。XLConnect 是用 Java 编写的,因此可以在 Win、Linux、Mac 上运行而不需要更改 R 代码(除非可能需要更改路径字符串)。\n\n2. 没有其他需要加载的东西。只需安装 XLConnect 即可继续生活。\n\n3. 您只提到了读取 Excel 文件,但 XLConnect 还可以写入 Excel 文件,包括更改单元格格式。而且它可以在 Linux 或 Mac 上执行此操作,不止是 Win。\n\nXLConnect 相对其他解决方案来说比较新,因此在博客文章和参考文档中提到的频率较低。对我来说,它非常有用。