R无法写入csv或RData文件

scr*_*Owl 3 csv r save

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

> save(collector2, file="collect2.RData")
Error in save(collector2, file = "collect2.RData") : 
  error writing to connection
Run Code Online (Sandbox Code Playgroud)

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

> write.csv(collector2, file="collect2.csv", row.names=FALSE)
Run Code Online (Sandbox Code Playgroud)

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

这是我正在尝试编写的数据框:

> 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 ...
Run Code Online (Sandbox Code Playgroud)

这是我的系统信息:

> 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                                    
Run Code Online (Sandbox Code Playgroud)

有什么建议?

scr*_*Owl 6

原来这是一个硬盘问题.我太空了,这就是信息.


dou*_*oug 5

那么你想要坚持的对象并不小.

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

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

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

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

一个9列x大约的数据帧.300,000行

> dim(FG1)
[1] 282816      9

> dfile = "fg1.RData"
Run Code Online (Sandbox Code Playgroud)


创建一个131 KB 的RData文件:

保存(FG1,file = dfile)


创建一个66 KB 的RData文件:

save(FG1,file = dfile,compress = TRUE,compression_level = 9)