分享

R语言 | 读取较大的excel文件

 无果r5htvs0lk3 2019-03-18

从miRTarBase数据库上下载了经试验验证的miRNA靶基因信息,.xlsx后缀文件,也就是常说的excel文件,文件大小23.5M。

在使用xlsx包读取该文件时报错:

Error in .jcall('RJavaTools', 'Ljava/lang/Object;', 'invokeMethod', cl, :java.lang.OutOfMemoryError: Java heap space

如字面意思,内存不足,但电脑还有超过3G的内存空间...

方法1

为其分配更多的内存

https:///questions/34624002/r-error-java-lang-outofmemoryerror-java-heap-space

使用 options 函数修改设置。注意,该命令需要在加载 rJava 或 xlsx 包之前执行,故推荐重启R,然后运行:

  1. options(java.parameters = '-Xmx8000m')

  2. p_load(xlsx)

此时再读取'.xlsx'文件则不会报错,但是读取文件时仍需要花费大量时间和内存资源,且不一定能顺利解决问题!

方法2

打开'.xlsx'文件,另存为'.csv'格式,再使用 read.csv 函数进行数据读取!

  1. database = read.csv('filename.csv', h = T)

方法3

使用readxl包中的 read_excel 函数,根据文件名后缀自行判断是 .xlsx 还是 .xls 文件并相应读取:

  1. p_load(readxl)

  2. read_excel('filename.xlsx', sheet = 1, col_names = T)

相对来说,方法3的执行更简便、速度较快、且占用资源少,推荐使用!

更多实用方法欢迎留言

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多