【发布时间】:2019-08-06 13:39:03
【问题描述】:
我有 7 个非常大的向量,c1 到 c7。我的任务是简单地创建一个数据框。但是,当我使用data.frame() 时,会返回错误消息。
> newdaily <- data.frame(c1,c2,c3,c4,c5,c6,c7)
Error in if (mirn && nrows[i] > 0L) { :
missing value where TRUE/FALSE needed
Calls: data.frame
In addition: Warning message:
In attributes(.Data) <- c(attributes(.Data), attrib) :
NAs introduced by coercion to integer range
Execution halted
它们都具有相同的长度(2,626,067,374 个元素),并且我检查过没有 NA。
我尝试将每个向量的 1/5 设置为子集,data.frame() 函数工作正常。所以我想这与数据的长度/大小有关?任何想法如何解决这个问题?非常感谢!!
更新 data.frame 和 data.table 都允许向量短于 2^31-1。仍然找不到创建一个超大数据帧的解决方案,所以我将数据子集改为...希望将来允许更大的向量。
【问题讨论】:
-
你可以试试
data.table。此外,26 亿个观测值相当大——您可能需要超过 32 GB 的 RAM 才能将其存储在工作内存中。 -
可以考虑专门的大数据框架,比如spark