我试图(实质上)通过移动到R+h2o.ai来加速一些R代码。
我是按单因素变量分组的,但当我试图计算加窗的分位数、偏度或峰度时,会出现错误。
在h2o中是否有与拆分应用-组合方法不兼容的摘要函数列表?它是否只适用于sql-模拟函数,如求和、计数或stdev?
此代码失败:
for(i in col_idx_list){
proc_cols_list <- names(df.hex)[i]
group_cols_list <- c("group_variable_factor")
h2o.quantile(x=df.hex[,proc_cols_list])
temp <- h2o.group_by(data=df.hex,
by=group_cols_list,
mean(proc_cols_list),
var(proc_cols_list),
skewness(proc_cols_list),
gb.control=list(na.methods="ignore") )
if(i ==first_index){
df_summs <- temp
} else {
df_summs <- h2o.cbind(df_summs , temp[,2:ncol(temp)])
}
}此代码运行良好:
for(i in col_idx_list){
proc_cols_list <- names(df.hex)[i]
group_cols_list <- c("group_variable_factor")
h2o.quantile(x=df.hex[,proc_cols_list])
temp <- h2o.group_by(data=df.hex,
by=group_cols_list,
mean(proc_cols_list),
var(proc_cols_list),
gb.control=list(na.methods="ignore") )
if(i ==first_index){
df_summs <- temp
} else {
df_summs <- h2o.cbind(df_summs , temp[,2:ncol(temp)])
}
}错误文本(为简洁起见截断):
ERROR: Unexpected HTTP Status code: 400 Bad Request (url = http://localhost:54321/99/Rapids)
Error in .h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion, urlSuffix = page, :
ERROR MESSAGE:
No enum constant water.rapids.ast.prims.mungers.AstGroup.FCN.skewness
ERROR: Unexpected HTTP Status code: 404 Not Found (url = http://localhost:54321/3/Frames/RTMP_sid_8712_17?row_count=10)
ERROR MESSAGE:
Object 'RTMP_sid_8712_17' not found for argument: key发布于 2019-02-20 20:39:32
错误似乎表明skewness是一个问题。有关h2o.group_by()中允许的聚合方法的完整列表,请参见文档的详细信息部分(页面底部)。
为了您的方便,我在这里添加了详细信息部分--您可以看到,当前不包括偏度(如果您有兴趣创建一个JIRA机票):
Details在na.methods中gb.control中有三种可能的设置。“所有”将包括在函数计算中的NAs。"rm“将完全删除所有NA字段。“忽略”将从分子中删除NAs,但为计算目的保留行。如果提供的列表小于列组的数量,则该列表将由“忽略”填充。注意,要在gb.control列表中指定列名列表,必须添加col.names参数。与na.methods类似,如果列表长度小于所提供的列组数,col.names将使用默认列名填充列表。支持的函数包括nrow。此函数是必需的,并接受一个字符串作为生成的列的名称。其他受支持的聚合函数接受用于指定列和处理NAs ("all“、”忽略“和GroupBy对象)的col和na参数;max计算GroupBy对象的每个组在col中指定的每一列的最大值;平均计算GroupBy对象的每组在col中指定的每一列的平均值;min计算GroupBy对象的每一组在col中指定的每一列的最小值;模式计算为GroupBy对象的每一组在col中指定的每一列的模式;sd计算为GroupBy对象的每一组指定的每一列的标准偏差;ss为GroupBy对象的每一组计算在col中指定的每一列的平方和;和为GroupBy对象的每一组计算在col中指定的每一列的和;并且var计算GroupBy对象的每一组在col中指定的每一列的方差。如果提供聚合时没有值(例如,最大值(col=“X1”,na=" all ").mean(col="X5",na=“all”).max(),则假定聚合应该应用于除GroupBy列之外的所有列。但是,不会对字符串列执行操作。他们会被跳过的。再次注意,nrow是必需的,不能为空。
https://stackoverflow.com/questions/54754644
复制相似问题