使用dplyr聚合和联接rxDataStep中的数据

时间:2019-04-05 15:21:31

标签: r sql-server revoscaler

我使用RevoScaleR,我想在现有表中添加一个新列。据我所知,有一个rxDataStep函数,可以使用transformFun参数传递一个函数。

我写了一个例子:

library(tidyverse)
set.seed(1)
N = 250

dataList <- data.frame(pvm_date = c(rep(2000,N),rep(2001,N),rep(2002,N)),
                       pHat = sample(c(0.1, 0.2, 0.3), N*3, replace = T),
                       DefaultInd_old = rbernoulli(3*N, 0.5)*1)

myFun = function(dataList){
  tmp = dataList %>% group_by(pvm_date, pHat) %>% summarize(Obs = n(), ODR = sum(DefaultInd_old)/n()) %>%
    group_by(pHat) %>% summarize(meanODR = mean(ODR)) 

  dataList$ODR = left_join(dataList, tmp, by = "pHat") %>% select('meanODR')

  return(dataList)
}

tmp = rxDataStep(inData = dataList, transformFunc = myFun)

当我运行此命令时,出现以下错误消息:

  

错误:用于分析的样本数据集没有变量。   在文件CxAnalysis.cpp中捕获到异常,行:3848。线程ID:11692重新抛出。   在文件CxAnalysis.cpp中捕获异常,行:5375。线程ID:11692重新抛出。 doTryCatch(return(expr),name,parentenv,handler)中的错误:
  错误:用于分析的样本数据集没有变量。

在rxDataStep函数外部运行该函数,返回我想要的结果。

你能告诉我这是怎么回事吗?

预先感谢 丹尼尔

0 个答案:

没有答案