请选择 进入手机版 | 继续访问电脑版
楼主: wangqian151
8733 10

[问答] R语言读取数据溢出求解 [推广有奖]

  • 0关注
  • 1粉丝

博士生

14%

还不是VIP/贵宾

-

威望
0
论坛币
11443 个
通用积分
3.6852
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
5728 点
帖子
78
精华
0
在线时间
362 小时
注册时间
2012-10-7
最后登录
2022-3-14

wangqian151 发表于 2016-1-18 18:43:13 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我需要读取许多个.xls文件,总共内存大概1.85GB,电脑的内存是8G
每次读取的时候,内存在700MB左右就会报错:

错误: OutOfMemoryError (Java): Java heap space

想请问一下这是什么原因呢?
如何解决这个问题呀?
谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:读取数据 R语言 memory 电脑的内存 Error 电脑的内存 Java 如何 左右

LY_2009 发表于 2016-1-19 13:47:16 |显示全部楼层 |坛友微信交流群
首先正常8g内存不会出现这个问题。你看一下R里面是不是已经存了大量数据
我们可以通过ls()看work space中有什么变量。
通过object.size()看每个变量占多大内存。
通过memory.size()查看现在的work space的内存使用
通过memory.limit()查看系统规定的内存使用上限。如果你认为现在的内存上限不够用,可以通过memory.limit(newLimit)更改到一个新的上限。 注意,在32位的R中,封顶上限为4G,你无法在一个程序上使用超过4G (数位上限)。这种时候,可以考虑使用64位的版本。

对于一些很大的但无用的中间变量,养成清理的习惯:可以使用rm(object)删除变量,但是记住,rm后记得使用gc()做Garbage collection,否则内存是不会自动释放的,相当于你没做rm.
已有 3 人评分论坛币 学术水平 热心指数 收起 理由
ryoeng + 1 热心帮助其他会员
admin_kefu + 10 热心帮助其他会员
jiangbeilu + 3 + 2 精彩帖子

总评分: 论坛币 + 10  学术水平 + 3  热心指数 + 3   查看全部评分

使用道具

wangqian151 发表于 2016-1-19 20:24:00 |显示全部楼层 |坛友微信交流群
LY_2009 发表于 2016-1-19 13:47
首先正常8g内存不会出现这个问题。你看一下R里面是不是已经存了大量数据
我们可以通过ls()看work space中有 ...
嗯, 我刚刚试了一下,但是还是不行,workspace里面没有变量。不过刚刚换了一个用了read_excel 的包就可以读了。我怀疑是XLCONNECT那个包调用java的时候对大小做了限制。

使用道具

ryoeng 在职认证  发表于 2016-1-20 00:26:11 |显示全部楼层 |坛友微信交流群
wangqian151 发表于 2016-1-19 20:24
嗯, 我刚刚试了一下,但是还是不行,workspace里面没有变量。不过刚刚换了一个用了read_excel 的包就可以 ...
或许可以尝试一下openxlsx程序包。
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

Scιβrοκεrs Trαdιηg
世博量化
http://gitee.com/englianhu

使用道具

LY_2009 发表于 2016-6-20 18:11:43 |显示全部楼层 |坛友微信交流群
wangqian151 发表于 2016-1-19 20:24
嗯, 我刚刚试了一下,但是还是不行,workspace里面没有变量。不过刚刚换了一个用了read_excel 的包就可以 ...
对,就是Java本身给设置了大小

使用道具

yanhong5252 发表于 2016-9-26 11:25:36 |显示全部楼层 |坛友微信交流群
我遇到了相似的问题,我是写文件write.csv的时候  内存溢出?求助啊。。每次只能写2000多一点文件。其中好多都是空表 不会占太大内存啊   为什么啊  

使用道具

yanhong5252 发表于 2016-9-26 11:26:00 |显示全部楼层 |坛友微信交流群
LY_2009 发表于 2016-6-20 18:11
对,就是Java本身给设置了大小
我遇到了相似的问题,我是写文件write.csv的时候  内存溢出?求助啊。。每次只能写2000多一点文件。其中好多都是空表 不会占太大内存啊   为什么啊  

使用道具

yanhong5252 发表于 2016-9-26 11:26:36 |显示全部楼层 |坛友微信交流群
ryoeng 发表于 2016-1-20 00:26
或许可以尝试一下openxlsx程序包。
我遇到了相似的问题,我是写文件write.csv的时候  内存溢出?求助啊。。每次只能写2000多一点文件。其中好多都是空表 不会占太大内存啊   为什么啊  

使用道具

wangqian151 发表于 2016-11-29 09:46:11 |显示全部楼层 |坛友微信交流群
yanhong5252 发表于 2016-9-26 11:26
我遇到了相似的问题,我是写文件write.csv的时候  内存溢出?求助啊。。每次只能写2000多一点文件。其中好 ...
你换一个读取的函数就可以了,这个函数就是读不了比较大的文件。

使用道具

qiu435 发表于 2016-11-29 11:52:20 |显示全部楼层 |坛友微信交流群
楼主是不是用的包直接读.xls? 试试直接用read.csv或者read.table 看看?

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-29 09:56