大数据读取子样本R.

Yod*_*oda 5 linux awk r system statistics-bootstrap

我非常感谢你有时间阅读这篇文章.

我有一个超大的30GB文件,包含600万条记录和3000条(主要是分类数据)列,采用csv格式.我想引导用于多项式回归的子样本,但即使我的机器中使用64GB RAM并且交换文件的两倍,它也很难实现,这个过程变得非常缓慢并且停止.

我正在考虑在R中生成子样本指标并使用sed或awk将它们输入系统命令,但不知道如何执行此操作.如果有人知道使用R命令干净的方法,我会非常感激.

一个问题是我需要选择子样本的完整观察,即我需要具有特定多项观察的所有行 - 它们从观察到观察的长度不同.我计划使用glmnet然后进行一些花哨的变换来得到多项式的近似值.另一点是我不知道如何选择样本大小以适应内存限制.

非常感谢你的想法.

R.version
platform       x86_64-pc-linux-gnu          
arch           x86_64                       
os             linux-gnu                    
system         x86_64, linux-gnu            
status                                      
major          2                            
minor          15.1                         
year           2012                         
month          06                           
day            22                           
svn rev        59600                        
language       R                            
version.string R version 2.15.1 (2012-06-22)
nickname       Roasted Marshmallows   
Run Code Online (Sandbox Code Playgroud)

尤达

the*_*mel 0

我认为使用 CSV 作为此类文件大小的数据格式是一个非常糟糕的想法 - 为什么不将其转换为 SQLite (或“实际”数据库)并使用 SQL 查询提取子集(使用DBI /RSQLite 2)?

您只需要导入一次,并且无需将整个内容加载到内存中,因为您可以直接将 CSV文件导入到 sqlite 中。

如果通常您想要使用比您的内存更大的数据集,您可能还想看看bigmemory