RxCrossTable:转换不起作用
RxCrossTable: transformation doesn't work
我正在做这个练习,我找不到错误。
数据是纽约出租车数据集的子样本(mht_lab2.zip
on Github)。
在当前的练习中,我应该使用 rxDataStep
将短程和长程出租车行程与 short/long 距离出租车行程 不 制成表格。因此我这样做了:
mht_xdf <- RxXdfData('mht_lab2.xdf') # make sure the xdf-file is in your directory
rxCrossTabs(~dist_rule:dur_rule,mht_xdf,transformFunc = function(datalist){
datalist$dist_rule=as.factor(ifelse(datalist$trip_distance>5,'long','short'),levels=c('short','long'))
datalist$dur_rule=as.factor(ifelse(datalist$trip_duration>10,'long','short'),levels=c('short','long'))
return(datalist)},transformVars = c('trip_distance','trip_duration')
)
然而它 returns 我出错了:
Error in doTryCatch(return(expr), name, parentenv, handler) :
ERROR: The sample data set for the analysis has no variables.
我尝试使用 transformObjects
、transforms
参数并尝试使用组合。它始终返回一个错误。
以上错误信息具有误导性。问题是 as.factor() 函数没有 'levels' 参数——您需要使用 factor() 函数。
以下将起作用:
myTransform <- function(dataList)
{
dataList$dist_rule <- factor(ifelse(dataList$trip_distance>5, 'long', 'short'),
levels = c('short', 'long'))
dataList$dur_rule <- factor(ifelse(dataList$trip_duration>10, 'long', 'short'),
levels = c('long', 'short'))
dataList
}
rxCrossTabs(~dist_rule:dur_rule, data = mht_xdf, transformFunc = myTransform,
transformVars = c("trip_distance", "trip_duration"))'
我正在做这个练习,我找不到错误。
数据是纽约出租车数据集的子样本(mht_lab2.zip
on Github)。
在当前的练习中,我应该使用 rxDataStep
将短程和长程出租车行程与 short/long 距离出租车行程 不 制成表格。因此我这样做了:
mht_xdf <- RxXdfData('mht_lab2.xdf') # make sure the xdf-file is in your directory
rxCrossTabs(~dist_rule:dur_rule,mht_xdf,transformFunc = function(datalist){
datalist$dist_rule=as.factor(ifelse(datalist$trip_distance>5,'long','short'),levels=c('short','long'))
datalist$dur_rule=as.factor(ifelse(datalist$trip_duration>10,'long','short'),levels=c('short','long'))
return(datalist)},transformVars = c('trip_distance','trip_duration')
)
然而它 returns 我出错了:
Error in doTryCatch(return(expr), name, parentenv, handler) :
ERROR: The sample data set for the analysis has no variables.
我尝试使用 transformObjects
、transforms
参数并尝试使用组合。它始终返回一个错误。
以上错误信息具有误导性。问题是 as.factor() 函数没有 'levels' 参数——您需要使用 factor() 函数。
以下将起作用:
myTransform <- function(dataList)
{
dataList$dist_rule <- factor(ifelse(dataList$trip_distance>5, 'long', 'short'),
levels = c('short', 'long'))
dataList$dur_rule <- factor(ifelse(dataList$trip_duration>10, 'long', 'short'),
levels = c('long', 'short'))
dataList
}
rxCrossTabs(~dist_rule:dur_rule, data = mht_xdf, transformFunc = myTransform,
transformVars = c("trip_distance", "trip_duration"))'