我正在尝试在R中打开163MB .xlsx文件。
library(openxlsx)
df <- read.xlsx(xlsxFile = "df.xlsx", sheet = 1, colNames = T)
这样做这个小文件(相对较小)使用笔记本电脑上的所有8GB RAM。
我有这个文件的CSV版本,但由于在其中一个列中使用,
和;
使用CSV不是一个选项如何发生这种情况,因为我知道我最近加载了一个kaggle文件(一个0.5GB的csv)进入R并仍然使用我的笔记本电脑浏览互联网?
编辑:pryr::object_size(df)
答案 0 :(得分:1)
您是否尝试过readxl package https://blog.rstudio.org/2017/04/19/readxl-1-0-0/
read_xlsx(path, sheet = NULL, range = NULL, col_names = TRUE,
col_types = NULL, na = "", trim_ws = TRUE, skip = 0, n_max = Inf,
guess_max = min(1000, n_max))
答案 1 :(得分:1)
您也可以将其作为制表符分隔(read.csv(..., sep="\t")
)阅读,或将其另存为.txt
文件,并将其作为制表符分隔。
答案 2 :(得分:1)
openxlsx
看起来这是(或至少是)问题。这个Github问题描述了文件大小膨胀的问题,并提出了一个解决方案(使用开发版本):https://github.com/awalker89/openxlsx/issues/161
所以,潜在的解决方案:
openxlsx
(devtools::install_github("awalker89/openxlsx")
readxl
包。save()
或saveRDS()
.csv
或readr::read_csv()
的{{1}}文件再试一次;两者都比基础R data.table::fread()