RAM使用中的小文件
我试图在R中打开一个163MB.xlsx文件RAM使用中的小文件,r,csv,ram,xlsx,R,Csv,Ram,Xlsx,我试图在R中打开一个163MB.xlsx文件 library(openxlsx) df <- read.xlsx(xlsxFile = "df.xlsx", sheet = 1, colNames = T) 库(openxlsx) df您是否尝试过readxl软件包 你试过readxl软件包吗 您也可以将其读取为制表符分隔(read.csv(…,sep=“\t”))或将其另存为.txt文件并读取为制表符分隔。您也可以将其读取为制表符分隔(read.csv(…,sep=“\t”))或将其另
library(openxlsx)
df <- read.xlsx(xlsxFile = "df.xlsx", sheet = 1, colNames = T)
库(openxlsx)
df您是否尝试过readxl软件包
你试过readxl软件包吗
您也可以将其读取为制表符分隔(read.csv(…,sep=“\t”)
)或将其另存为.txt
文件并读取为制表符分隔。您也可以将其读取为制表符分隔(read.csv(…,sep=“\t”)
)或将其另存为.txt
文件并读取为制表符分隔。看起来是这样的(至少是这样的)openxlsx
有问题。此Github问题描述了文件大小膨胀的问题,并提出了解决方案(使用开发版本):
因此,潜在的解决方案:
- 尝试开发版本的
openxlsx
(devtools::install\u github(“awalker89/openxlsx”)
- 按照的建议,尝试使用
readxl
软件包
- 加载文件并使用
save()
或saveRDS()
- 使用
readr::read_csv()
或data.table::fread()
,使用.csv
文件重试;两者都比基本R的read.csv()快。
看起来这是(或至少是)openxlsx的一个问题。openxlsx
这个Github问题描述了文件大小膨胀的问题,并提出了解决方案(使用开发版本):
因此,潜在的解决方案:
- 尝试开发版本的
openxlsx
(devtools::install\u github(“awalker89/openxlsx”)
- 按照的建议,尝试使用
readxl
软件包
- 加载文件并使用
save()
或saveRDS()
- 使用
readr::read_csv()
或data.table::fread()
,使用.csv
文件重试;两者都比基本R的read.csv()快。
pryr::object_size(df)
(您可能需要install.packages(“pryr”)
)的结果是什么?可能有两个原因:1.当转换为R数据类型时,某些字段可能比原始文件占用更多的空间(在某些情况下甚至更少)2.xlsx文件是压缩的,因此,当您说您有一个CSV版本,但“CSV不是一个选项”时,需要在加载时进行扩展,这是否意味着您的CSV格式不正确?在文件中使用逗号和分号是完全合法的,如果格式正确,R可以读取它。(如果您的版本格式不好,并且您在阅读xlsx时仍然有问题,也许您可以从xlsx重新导出到csv。)谢谢您的建议。@Phil我更新了这篇文章,因此它包含了RAM使用情况的图片和pryr::object_size(df)的输出
@Richard我不确定是否看到了Phil建议的函数的输出,我想可能还有另一个原因,pryr::object\u size(df)
(您可能需要安装.packages(“pryr”)
)?有两个可能的原因1.当转换为R数据类型时,某些字段可能会占用比原始文件中更多的空间(或在某些情况下占用更少的空间)。2.xlsx文件被压缩,因此当您说您有CSV版本,但“CSV不是一个选项”时,应在加载时进行扩展,这是否意味着您的CSV格式不正确?在文件中使用逗号和分号是完全合法的,如果格式正确,R将很好地读取它。(如果您的版本格式不正确,并且您在读取xlsx时仍然有问题,您可以将其从xlsx重新导出到CSV。)谢谢你的建议。@Phil我更新了帖子,因此它包括了RAM使用情况的图片和pryr::object_size(df)
@Richard我不确定是否看到Phil建议的函数的输出,我想可能还有另一个原因
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))