我正在尝试将数据帧的内容写入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
有什么建议吗?
答案 0 :(得分:6)
原来这是硬盘问题。我太空了,这就是信息。
答案 1 :(得分:5)
你试图坚持的对象不小。
无论如何,我无法重现错误,但是对象大小是我能看到的唯一可能的来源。
数据框中的中间列 rowid 是类型 double ,它们是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 文件:
save(FG1,file = dfile,compress = TRUE,compression_level = 9)