楼主: king64
2888 1

[问答] 求教! [推广有奖]

  • 1关注
  • 11粉丝

已卖:1336份资源

副教授

31%

还不是VIP/贵宾

-

威望
0
论坛币
1139 个
通用积分
119.2433
学术水平
48 点
热心指数
54 点
信用等级
42 点
经验
8328 点
帖子
318
精华
0
在线时间
1159 小时
注册时间
2008-2-7
最后登录
2023-7-17

楼主
king64 发表于 2015-12-18 08:52:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
使用R中read.table() 读取一个1.3G 的text格式数据,无法全部读入。具体测试结果如下:

1.  如果仅读入前2149659行(含),没有问题
dat <- read.table(filnam,sep="\t",nrows = 2149659,stringsAsFactors = FALSE)
但是如果多读入1行也不行,报错如下:
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  :
  could not allocate memory (2048 Mb) in C function 'R_AllocStringBuffer'


2. 如果跳过前面的2165754行,也能读入,少于2165754行就不行
dat1 <- read.table(filnam,sep="\t",skip =21657520,stringsAsFactors = FALSE )

但是,如果跳过的少于2165754行就不行,报错如下:
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  :
  could not allocate memory (2048 Mb) in C function 'R_AllocStringBuffer'


我想请教的是:
(1)使用的机器是64位的,机器总内存48G。运行R监测内存使用情况,发现报错时才使用的12G的内存。
这类问题如何解决?

(2)再有, 2149659行和2165754行之间相差16095行,不行想把这部分数据直接丢失掉,想知道损失的是什么。那么如何读取这部分数据?








二维码

扫码加我 拉你入群

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

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

关键词:Table 测试结果 READ ABLE Text 读入数据

沙发
万人往LVR 在职认证  发表于 2015-12-18 09:33:33
memory.limit(20000)
read.table
已有 1 人评分热心指数 收起 理由
求证1加1 + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 21:54