5

我正在尝试将数据框的内容写入 RData 文件。

> save(collector2, file="collect2.RData")
Error in save(collector2, file = "collect2.RData") : 
  error writing to connection

作为第二个选项,我尝试使用:

> write.csv(collector2, file="collect2.csv", row.names=FALSE)

这将执行并创建一个文件,但它是空的。

这是我要编写的数据框:

> head(collector2)
          adQuer1     rowid adQueravg
1 2485651|2284211 132000001 0.0000000
2      20888541|7 132000002 0.0152358
3      20888541|7 132987430 0.0152358
4      20888541|7 132595958 0.0152358
5      20888541|7 132621111 0.0152358
6      20888541|7 132464740 0.0152358
> str(collector2)
'data.frame':   17639105 obs. of  3 variables:
 $ adQuer1  : Factor w/ 7241603 levels "1000467|130715",..: 430440 229948 229948 229948 229948 229948 229948 229948 229948 229948 ...
 $ rowid    : num  1.32e+08 1.32e+08 1.33e+08 1.33e+08 1.33e+08 ...
 $ adQueravg: num  0 0.0152 0.0152 0.0152 0.0152 ...

这是我的系统信息:

> version
               _                            
platform       x86_64-unknown-linux-gnu     
arch           x86_64                       
os             linux-gnu                    
system         x86_64, linux-gnu            
status                                      
major          2                            
minor          15.0                         
year           2012                         
month          03                           
day            30                           
svn rev        58871                        
language       R                            
version.string R version 2.15.0 (2012-03-30)
nickname                                    

有什么建议么?

4

2 回答 2

9

原来是硬盘问题。我没有空间了,这就是信息。

于 2012-05-22T04:31:02.373 回答
5

那么你试图坚持的对象并不小。

无论如何,我无法重现错误,但对象大小是我能看到的唯一可能来源。

数据框中的中间列rowiddouble类型,它们是 64 位整数,因此该列包含对象大小的大部分。这表明将此列与其他两个分开保存 - 即,在两个单独的 RData 对象中,每个对象都保存到自己的文件中。

其次,也许通过传入适当的参数来尝试压缩以保存

使用具有大约的数据框。300K 行和 9 列,我使用gzip压缩将 RData 对象的大小减少了1/2 多一点。

一个有 9 列 x 大约的数据框。300,000 行

> dim(FG1)
[1] 282816      9

> dfile = "fg1.RData"


创建大小为 131 KB 的RData文件:

保存(FG1,文件=dfile)


创建大小为 66 KB 的RData文件:

保存(FG1,文件=dfile,压缩=真,压缩级别=9)

于 2012-05-21T22:32:11.310 回答