【发布时间】:2016-08-15 12:24:42
【问题描述】:
我正在转换本地 R 脚本以使用 Revolution-R(又名 Microsoft R 客户端/服务器)包中的 RevoScaleR 函数。这样可以更好地处理大量数据。
目标是创建一个新列,为每组的行编号。使用data.table 可以使用以下代码实现:
library(data.table)
eventlog[,ActivityNumber := seq(from=1, to=.N, by=1), by=Case.ID]
出于说明目的,输出如下所示:
Case.ID ActivityNumber
1 A 1
2 A 2
3 B 1
4 C 1
5 C 2
6 C 3
在使用rx-functions 进行一些研究后,我找到了包dplyrXdf,它基本上是在Xdfstored 数据上使用dplyrfunctions 的包装器,同时仍然受益于优化的功能RevoScaleR(见http://blog.revolutionanalytics.com/2015/10/using-the-dplyrxdf-package.html)
就我而言,这将导致以下结果:
result <- eventlog %>%
group_by(Case.ID) %>%
mutate(ActivityNumber = seq_len(n()))
但是,这会导致以下错误:
ERROR: Attempting to add a variable without a name to an analysis.
Caught exception in file: CxAnalysis.cpp, line: 3756. ThreadID: 1248 Rethrowing.
Caught exception in file: CxAnalysis.cpp, line: 5249. ThreadID: 1248 Rethrowing.
Error in doTryCatch(return(expr), name, parentenv, handler) :
Error in executing R code: ERROR: Attempting to add a variable without a name to an analysis.
任何想法如何解决这个错误?或者其他(更好的?)方法来获得请求的结果?
【问题讨论】:
标签: r revolution-r