问题标签 [r-bigmemory]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xgboost - 将 XGBOOST 应用于大型数据集
我有一个大小约为 5.3 GB 的大型数据集,我在 R 中使用 bigmemory() 存储了数据。请让我知道如何将 XGBOOST 应用于此类数据?
r - 标题行和第一个数据行之间的维度不匹配。大矩阵
我正在处理大型数据集。我可以使用read.table
命令读取其中的一些,但使用参数fill=TRUE
,因为此类数据集有一些代表 NA 的空白。
现在,我有一个高达 35 Gb 的数据库,所以通常的read.table
命令是无用的,所以我在包中找到了 read.big.matrix 函数bigmemory
。问题是它返回以下错误:
“标题行和第一个数据行之间的维度不匹配。” 我认为这是因为它没有将空白读取为 NA。
你知道我该如何解决这个问题吗?谢谢。
r - R bigmemory 不会读取大的 csv 文件
我正在尝试使用read.big.matrix
Rbiganalytics
包以类似于Vignette for bigmemory的方式加载 689.4 MB csv 。
小插图代码:
根据 42- 的评论,我在命令行上使用 cut 删除了因子变量cut -d, -f9,11,17,18,23 --complement 2008.csv > 2008cut.csv
然后,我使用 sed 删除了数据中发现的任何 NA 值sed -i 's/NA/0/g' 2008cut.csv
即使使用这些预处理步骤,我也会收到相同的错误。
我的代码:
尝试运行 read.big.matrix 时收到以下错误:
我发现其他人有这个问题,但他们有混合数据或类似问题但没有回应。在我搜索的某个时间点,邮件列表中的某个人询问用户是否可以运行类似的东西x <- big.matrix(nrow=1000,ncol=10)
来确保 bigmemory 正常工作。我能够运行该代码并生成一个 big.matrix 。
任何指导将不胜感激!
软件详情:
- 数据:2008 年文件
- R:3.2.3
- 操作系统:x86_64-pc-linux-gnu
- 大内存:4.5.19
- 大分析:1.1.14
r - 从集群工作人员处理 big.matrix
我正在尝试从 Windows 机器上的 parLapply 函数访问 big.matrix(不是文件支持)。但是,调用 big.matrix 时 R 崩溃 - “R for Windows 前端停止工作”。
我需要先附加 big.matrix 吗?我该怎么做呢?非常感谢任何帮助。
r - 如何查看 bigmemory 包的 big.matrix 对象的实际内存大小?
我正在使用该bigmemory
包加载繁重的数据集,但是当我检查对象的大小(使用 function object.size
)时,它总是返回664 bytes。据我了解,权重应该与经典的 R 矩阵几乎相同,但取决于类(双精度或整数)。那么,为什么我会得到 664 个字节作为答案呢?下面是可重现的代码。第一个块真的很慢,所以请随意减少模拟值的数量。使用 (10^6 * 20) 就足够了。
r - 从 Rcpp 中的 bigmemory 对象中提取具有 NA 的列
我正在尝试创建一个从 Rcpp 中的 big.matrix 对象中提取列的函数(以便在将结果带到 R 之前可以在 cpp 中对其进行分析),但我不知道如何让它识别NA(它们现在显示为 -2147483648 - 如下面的最小示例所示)。如果我可以直接从 Rcpp 访问函数GetMatrixCols ( src/bigmemory.cpp ) 会更好,但我还没有找到一种方法来做到这一点。
c++ - Rcpp:使用模板函数时发生错误
我正在修改我的 biglasso 包以适应不同的数据类型big.matrix
。当前版本仅支持double
类型。源代码在这里。
我所做的只是简单地添加标题并对以作为输入template
的函数进行必要的更改。big.matrix
下面的函数是一个例子:xpMat
是指向big.matrix
.
但是,在我进行更改后,R 包无法编译。以下是错误消息。对我来说,它说明了一些与crossprod_bm
出错有关的事情:
谁能告诉我是什么虫子?这些错误与类型转换有关吗?我假设计算中的类型转换可以自动完成。
非常感谢您!
[响应@Coatless的更新]
我确实有调度员,如下所示。
[结束更新]
[更新 2]
我将所有更改提交到GitHub,以便您可以看到全貌。如果您能提出任何意见,我将不胜感激。
[更新 2]
[更新 3]
我认为cdfit_gaussian_edpp_cpp
应该返回Rcpp::List
。我纠正了这个(如上),但仍然有类似的错误。
似乎我的代码中的模板一定有问题,也许是定义模板?调用模板?
如果我不使用模板,一切都会好起来的!例如,如果我将错误消息中捕获的函数恢复为不是模板函数,那么发生的情况是该函数不会在错误中捕获。但是下一个模板函数将被捕获并带有类似的错误消息。
但是,另一方面,我尝试使用and来遵循示例Rcpp
bigmemory
。我更改了模板功能如下,这类似于我在包中使用模板的方式。但它有效!这让我觉得我正确使用了模板。
我在这里真的很困惑,如果任何专家可以指出错误,我将不胜感激!太感谢了!
[更新 3]
r - 在 R 中融化 ~80gb 分布矩阵 - 效率策略?
朋友们,
我用 igraphs shortest.paths 在无向图上计算了研究人员之间的距离矩阵,得到了一个 80gb 的矩阵。下一步是熔化矩阵的上三角形。我需要在 16 个不同的图表上定义这种类型的矩阵。
当尝试在矩阵上运行任何操作(data.table::melt、lower.triangle <- NA 或 is.infinite <- NA)时,我得到“无法分配向量...” - 错误,即使运行它具有 244GiB RAM 的 Amazon AWS r3.8xlarge。
我测试过的策略:
拆分矩阵和融化子矩阵:太耗时(每个矩阵 2 天)或并行时消耗内存
转换成 big.matrix:太耗时(每个矩阵 1 天)
有什么想法即使我有 2-3 倍的可用内存可用,为什么我会收到错误对于这种大小的数据集使用哪种策略?
提前非常感谢!
会话信息:
ami-b1b0c3c2(来自http://www.louisaslett.com/RStudio_AMI/)
RStudio 0.99.903
R 3.3.1
r3.8xlarge - 实例
我的代码(df_Network 有 2 列:AuthorID 和 ArticleID):
链接到示例数据: https ://www.dropbox.com/s/eaud2np33e5y6iv/df_network_2000-2005.RData?dl=0
r - 使用 big.matrix 操作
我必须使用 big.matrix 对象,并且我无法计算某些函数。让我们考虑以下 big.matrix:
对应的矩阵对象为:
如果我用矩阵对象计算这个操作,它可以工作:
虽然如果我使用 big.matrix 对象(实际上是我必须使用的),但它不起作用:
问题是 2:* 操作(创建矩阵每个元素的平方),它会产生错误:
x * x 中的错误:非数字参数转换为二元运算符
以及产生错误的 sqrt 函数:
sqrt(x) 中的错误:数学函数的非数字参数。
如何使用 big.matrix 对象计算此操作?
c++ - 将 RcppArmadillo 与 bigmemory 一起使用,返回一个 bigmatrix
我正在尝试big.matrix
使用 using进行一些操作RcppArmadillo
。问题是我总是需要保持我的结果以big.matrix
避免将数据加载到 RAM 中。这是我创建 a 转置的代码big.matrix
:
big_T.cpp
回复:
[1] 对
我发现我的尝试没有效率有两个原因:
big.matrix
我需要在 R 代码中创建第二个。有没有办法big.matrix
在 c++ 中创建指向新对象的外部指针?- 为了工作
memcpy
,我必须创建一个循环。如何一次复制所有矩阵?