全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2889 1
2015-12-18
使用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行,不行想把这部分数据直接丢失掉,想知道损失的是什么。那么如何读取这部分数据?








二维码

扫码加我 拉你入群

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

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

全部回复
2015-12-18 09:33:33
memory.limit(20000)
read.table
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群