Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RAM使用中的小文件_R_Csv_Ram_Xlsx - Fatal编程技术网

RAM使用中的小文件

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”))或将其另

我试图在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”)
)或将其另存为
.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))