我正在转换本地 R 脚本以使用RevoScaleR
Revolution-R(又名 Microsoft R 客户端/服务器)包中的功能。这是为了能够更好地处理大量数据。
目标是创建一个新列,为每组的行编号。使用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
在使用 -functions 进行一些研究后,rx
我找到了 package dplyrXdf
,它基本上是一个dplyr
在存储数据上使用函数的包装器Xdf
,同时仍然受益于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.
任何想法如何解决这个错误?或其他(更好的?)方法来获得请求的结果?