0

我有一个 7200 万个观察数据框。它有两列my_idmy_rand变量。数据框有大约 600 万个独特的my_id. 我需要my_rankmy_id(分组my_id)计算平均值。我尝试运行上述常规 R 命令,但它似乎冻结了 R(可能数据太大而无法容纳内存)。

avg_rank_by_id<-aggregate(dataframe1["my_rank"],by=dataframe1["my_id"], mean, na.rm=TRUE)

有没有办法运行 Revo Scale RrxCube等来实现目标?我在 Linux 上运行。它在下面尝试过,但出现错误。

我是 R 新手。除了 Revo Scale R,还有其他高性能计算开源 R 包可用吗?谢谢。

acct_avg_rank <- rxCube( N(m13_rank)~acct_id, data=payee_merge, means=TRUE, returnDataFrame=TRUE)

所有自变量必须是rxCube和的因子rxCrossTabs"acct_id"。用于F(x)声明将连续变量x视为因子。

rxCall("RxCrossTabs", params) 中的错误:
调用:rxCube -> rxCubeBase -> rxCall -> .Call

4

1 回答 1

0

看起来您在导入时acct_id被视为已处理,numeric并且它需要是factor.

您有三个选择:
1. 再次导入并使用colClasses = c(acct_id = "factor").
2.rxFactors用于更改acct_idfactor.
3.factor将公式改为a。

acct_avg_rank <- rxCube(N(m13_rank) ~ F(acct_id), data=payee_merge,
                        means=TRUE, returnDataFrame=TRUE)  
于 2015-07-08T16:12:26.243 回答