如何在R中使用csvkit快速读取大体积.xlsx文件?
大XLSX文件快速读取与in2csv报错解决
关于in2csv报错的原因
in2csv是Python csvkit工具集里的命令,你的系统未安装该工具,因此无法识别命令。若要使用此方法:
- 先安装Python和pip,然后在命令行运行
pip install csvkit - 安装完成后重新执行
fread('in2csv nyts2022.xlsx')即可
不过更推荐直接在R环境内解决,无需依赖外部工具:
R环境下的快速读取方案
1. 使用openxlsx包(推荐)
这是纯R实现的XLSX读写工具,速度远快于readxl,且无需依赖Java:
# 安装并加载包 install.packages("openxlsx") library(openxlsx) # 读取文件并计时 system.time(df <- read.xlsx("nyts2022.xlsx"))
2. 优化readxl的读取参数
如果不想换包,通过指定参数减少readxl的计算量:
library(readxl) # 指定工作表、明确列类型(提前知道类型可替换为具体值,如c("numeric", "character")) system.time(df <- read_excel("nyts2022.xlsx", sheet = 1, col_types = "guess"))
3. 转CSV后用fread读取
若追求fread的极致速度,可在R内完成格式转换:
library(openxlsx) library(data.table) # 将XLSX转存为CSV write.xlsx(read.xlsx("nyts2022.xlsx"), "nyts2022.csv") # 用fread读取CSV system.time(df <- fread("nyts2022.csv"))
也可以手动用Excel打开文件,另存为CSV格式,再用fread读取,操作更简单。
内容的提问来源于stack exchange,提问作者aerw4
相关产品推荐
相关产品推荐

