大数据读取子样本R

2023-11-23

我非常感谢您花时间阅读本文。

我有一个 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   

Yoda


正如themel 所指出的,R 在读取 csv 文件时非常非常慢。
如果你有 sqlite,它确实是最好的方法,因为看起来数据挖掘不仅仅是为了 一次,但以多种方式进行多次会话。

让我们看看我们有哪些选择

将 csv 读取到 R(慢)

与用 C 编写的工具(在我的机器上)相比,在 R 中执行此操作大约慢 20 倍

这很慢

read.csv( file='filename.csv' , head=TRUE , sep=",")

预先转换为 stata dta 文件并从那里加载

不是那么好,但它应该可以工作(我从未在 30 gig 文件上尝试过它,所以我不能肯定地说)

编写一个程序将 csv 转换为 dta 格式(如果你知道你在做什么)

使用来自的资源http://www.stata.com/help.cgi?dta和代码来自https://svn.r-project.org/R-packages/trunk/foreign/src/stataread.c读写 和http://sourceforge.net/projects/libcs​​v/
(以前做过,不过我没用过,不知道效果如何)

然后使用foreign包裹 (http://cran.r-project.org/web/packages/foreign/index.html), 一个简单的

library(foreign)
whatever <- read.dta("file.dta")

会加载你的数据

直接使用mysql导入csv数据(有点难用,不过懂SQL也好)

从 SQL 控制台

LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE my_table 
IGNORE 1 LINES              <- If csv file contains headers
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n'

Or

mysql -e "LOAD DATA INFILE 'ls.dat' INTO TABLE mytable1" mydatabase

然后从 R 控制台播放,使用RMySQLR 与 MySQL 数据库的接口http://cran.r-project.org/web/packages/RMySQL/index.html

install.packages('RMySQL')

然后像这样玩

mydb = dbConnect(MySQL(), user=username, password=userpass, dbname=databasename, host=host)
dbListTables(mydb)
record <- dbSendQuery(mydb, "select * from whatever")
dbClearResult(rs)
dbDisconnect(mydb)

使用 R 执行所有 sqlite/postgreSQL/MySQL 后端 SQL 操作来导入 csv(推荐)

下载,来自https://code.google.com/p/sqldf/如果您没有包裹
or svn checkout http://sqldf.googlecode.com/svn/trunk/ sqldf-read-only

从 R 控制台,

install.packages("sqldf")
# shows built in data frames
data() 

# load sqldf into workspace
library(sqldf)
MyCsvFile <- file("file.csv")
Mydataframe <- sqldf("select * from MyCsvFile", dbname = "MyDatabase", file.format = list(header = TRUE, row.names = FALSE))

然后你就出发吧!

就我个人而言,我会推荐library(sqldf)选项:-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据读取子样本R 的相关文章

随机推荐

  • 使用 Sublime Text 2 进行特定于语法的突出显示

    我想知道是否有一种方法可以为同一文件中的不同语言标签提供两种不同的标签颜色 美国的 颜色 例如 假设我在同一个 cfm 文件中具有 ColdFusion 代码和 HTML 代码 我可以将 ColdFusion 标签设为红色 将 HTML 标
  • 在 AVFoundation 中捕获缩放预览视图

    我正在使用 AVFoundation 相机中的缩放功能 我通过缩放具有 AVCaptureVideoPreviewLayer 的视图来实现缩放 现在我想捕捉缩放图像 这是我添加 AVFoundation Video PreviewLayer
  • 当 DataTables 表加载 Ruby on Rails 时显示微调器

    我使用 Rails 构建了一个网络应用程序 Web 应用程序的其中一个页面显示了一个表格 该表格使用数据表API This JSFiddle显示了我的网络应用程序的示例 问题在于 当我开始添加大量数据 当前测试数据为 1500 行 时 表会
  • Google 图表 - 仪表图动画不起作用

    我正在尝试使用 Google Graphs 创建一些 GAUGE 图表 我的目标是从 php 页面加载数据并自动刷新 我能够做到这一点 但是当刷新数据时 仪表线不是动画的 而是从新的重新绘制的 我希望看到这样的酷动画 https jsfid
  • Room 如何转换定制对象

    我是 Room 的新手 我不明白应该如何解决这个问题 我有一个实体Movie另一个实体称为 pcomingMovies Entity public class Movie PrimaryKey NonNull public String i
  • 对于 Internet 上的 WCF 服务来说,传输安全性是一种不好的做法吗?

    我有一个可通过 Internet 访问的 WCF 服务 它具有 wsHttpBinding 绑定和消息安全模式 并使用用户名凭据来验证客户端 msdn说我们应该在Internet场景中使用消息安全 因为它提供端到端的安全 而不是像传输安全那
  • 在 __del__ 中关闭/处理对象真的可以吗?

    我一直在思考如何用Python编写类 更具体地说 构造函数是如何实现的以及对象应该如何被销毁 我不想依赖 CPython 的引用计数来进行对象清理 这基本上告诉我应该使用 with 语句来管理我的对象生命周期 并且我需要一个显式的 clos
  • 如何在 java 8 中展平地图列表

    我有要求 我有地图列表 Men 1 Men 2 Women 3 Women 2 Boys 4 现在我需要将其设为 flatMap 使其看起来像 Gender countOfValues 在上面的例子中 输出将是 Men 3 Women 5
  • 在java中读取Excel工作表时出现NoSuchFieldError

    我遵循了使用 Apache POI XSSF 构建工作簿的简单指南 按照相同的指南 我能够编写 Excel 工作表 但是当尝试读取 Excel 工作表时 我收到代码后显示的错误 Code try FileInputStream file n
  • 反序列化集合时未调用 Setter

    我正在尝试使用 XmlSerializer 进行非常简单的序列化 public struct XmlPerson XmlAttribute public string Id get set XmlAttribute public strin
  • 使用 LINQ to SQL 存储图像:将字节数组或流转换为二进制

    我正在使用 LINQ to SQL 我的图像字段被视为二进制 当我需要渲染图像时 将 Binary 类型转换为 byte 您可以使用 Binary 对象的 ToArray 方法 并不是什么大问题 但是有人可以告诉我如何将 byte 或将对象
  • 为 PerSession WCF 服务调用两次静态构造函数

    无法理解为什么类型构造函数PerSession WCF 服务调用了两次 ConcurrencyMode is Multiple 只需启动五个同时执行相同 WCF 服务方法调用的客户端 在日志中我看到static构造函数被调用两次 第一次 3
  • 使用(自定义)GCC 4.x 或 5.x 时,Boost 构建无法通过 C++11 功能检查

    我需要在 Fedora 24 机器上构建 Boost 1 62 和 1 63 但使用 GCC 4 9 3 或 GCC 5 4 0 取决于 CUDA 版本 这就是我需要旧编译器的原因 但是如果我按照中所述设置自定义 GCC 版本这个答案 an
  • 如何在Tensorflow 2.0中使用gradient_override_map?

    我正在尝试使用gradient override map与张量流2 0 有一个文档中的示例 我也将在这里用作示例 In 2 0 GradientTape可用于计算梯度 如下所示 import tensorflow as tf print t
  • 在 SDK 工具修订版 12 中启动 Android 模拟器

    我将 Android SDK 工具从修订版 11 更新到修订版 12 模拟器现在无法启动 当我尝试运行 emulator exe 时 我得到 无效的命令行参数 Files Android android sdk tools emulator
  • 为什么音频和视频事件不冒泡?

    我想知道为什么我的一些 Javascript 无法工作 直到我发现音频事件没有在 DOM 树中冒泡 例如这timeupdate event 是否有理由不让音频和视频标签的事件冒泡 事件冒泡存在的原因是为了解决哪个元素是事件的预期目标这一含糊
  • 序言。结构(复杂术语)和谓词,我真的不明白区别

    我是序言新手 我似乎无法理解结构和谓词之间的区别 真的有什么区别吗 在四处挖掘时 我发现有些人认为f X a X 是一个谓词 有些人认为嫉妒 X Y 爱 X Z 爱 Y Z 是一个结构 或一个复杂的术语 他们对我来说看起来几乎一样 有人愿意
  • Android 上使用 SoundPool 实现无缝循环?

    我尝试使用 SoundPool 类循环短 20kb 无间隙 ogg 文件 但在硬件测试时无法获得一致的结果 它总是使用模拟器完美播放 但当我在 Nexus 1 或 Samsumg Galaxy Tab 10 1 上进行测试时 每个循环点都会
  • 手动生成条令段

    我在 Symfony2 项目中使用 slugable 行为 但现在我想根据不同的文本 当前标题 旧标题 表单输入中的用户文本 为一个页面制作许多 slugs 并将其保留在另一个页面中桌子 我的问题是 如何手动使用任何文本的学说扩展 我到处都
  • 大数据读取子样本R

    我非常感谢您花时间阅读本文 我有一个 30GB 的超级文件 其中包含 600 万条记录和 3000 个 csv 格式的列 主要是分类数据 我想引导子样本进行多项回归 但事实证明 即使我的机器中有 64GB RAM 和两倍的交换文件 这个过程