gpt4 book ai didi

R - 大数据 - 向量超出向量长度限制

转载 作者:行者123 更新时间:2023-12-01 07:05:05 25 4
gpt4 key购买 nike

我有以下 R 代码:

data <- read.csv('testfile.data', header = T)
mat = as.matrix(data)

我的 testfile.data 的更多统计信息:
> ncol(data)
[1] 75713
> nrow(data)
[1] 44771

由于这是一个大型数据集,因此我使用具有 64GB Ram 空间的 Amazon EC2。所以希望内存不是问题。我能够加载数据(第一行有效)。
但是 as.matrix 转换(第 2 行错误)会引发以下错误:
resulting vector exceeds vector length limit in 'AnswerType'

任何线索可能是什么问题?

最佳答案

如前所述,R 的开发版本支持大于 2^31-1 的向量。例如,这或多或少是透明的

> m = matrix(0L, .Machine$integer.max / 4, 5)
> length(m)
[1] 2684354555

这是与
> R.version.string
[1] "R Under development (unstable) (2012-08-07 r60193)"

大对象消耗大量内存(例如我的 16G 的 62.5%),并且做任何有用的事情都需要数倍的内存。此外,即使是对大数据的简单操作也可能需要相当长的时间。尚不支持对长向量的许多操作
> sum(m)
Error: long vectors not supported yet:
/home/mtmorgan/src/R-devel/src/include/Rinlinedfuns.h:100

因此,通过迭代较大的文件以较小的块处理数据通常是有意义的。这可以完全访问 R 的例程,并允许并行计算(通过并行包)。另一种策略是对数据进行下采样,这对统计受众来说不应该太吓人。

关于R - 大数据 - 向量超出向量长度限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11855340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com