簡體   English   中英

h2o.ai摘要功能與group_by不兼容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM