[英]h2o.ai summary functions incompatible with group_by
我試圖通過移至R + h2o.ai來(實質上)加速一些R代碼。
我按單個因子變量分組,但是在嘗試計算加窗分位數,偏度或峰度時出現錯誤。
在h2o中是否存在與split-apply-combine方法不兼容的摘要函數列表? 它僅適用於sql-analog函數,例如sum,count或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
該錯誤似乎表明skewness
是一個問題。 有關h2o.group_by()
中允許的聚合方法的完整列表,請參見文檔的“詳細信息”部分(頁面底部)。
為了方便起見,我在此處添加“詳細信息”部分-您可以看到當前不包括偏斜(如果您有興趣隨意創建JIRA票證,請注意以下幾點):
詳細信息 對於gb.control中的na.method,有三種可能的設置。 “全部”將在功能計算中包括NA。 “ rm”將完全刪除所有NA字段。 “忽略”將從分子中刪除NA,但保留行以進行計算。 如果提供的列表小於列組的數量,則該列表將由“忽略”填充。 請注意,要在gb.control列表中指定列名列表,必須添加col.names參數。 與na.methods相似,如果長度小於提供的列組數目,則col.names將使用默認列名填充列表。 支持的功能包括nrow。 此函數是必需的,並且接受生成的列的名稱的字符串。 其他受支持的聚合函數接受col和na參數來指定列和NA的處理(“ all”,“ ignore”和GroupBy對象; max計算為groupBy對象的每個組在col中指定的每一列的最大值; mean計算col為GroupBy對象的每一組在col中指定的每一列的平均值; min計算為GroupBy對象的每一組在col中指定的每一列的最小值; mode為GroupBy的每一組計算col所指定的每一列的模式object; sd計算為GroupBy對象的每組在col中指定的每一列的標准差; ss計算為groupBy對象的每組在col中指定的每一列的平方和; sum計算在colB中指定的每組GroupBy對象的平方和。 col代表GroupBy對象的每個組;而var計算為colB指定的每個GroupBy對象的每個組的方差。如果提供的聚合沒有值(例如,以sum(col = X的max 1“,na =” all“)。mean(col =” X5“,na =” all“)。max()),則假定聚合應應用於除GroupBy列之外的所有列。 但是,將不會對字符串列執行操作。 他們將被跳過。 再次注意,nrow是必需的,不能為空。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.