【问题标题】:Group by on XDF file?按 XDF 文件分组?
【发布时间】:2018-06-13 14:27:45
【问题描述】:

假设我有一个使用 RevoScaleR 生成的巨大源 XDF 文件。我想通过将 A、B、C 列上的源条目分组并计算 D 列上的总和、最小值、最大值、平均值、标准偏差来创建一个新的目标 XDF。

让我们假设目标数据太大而无法放入内存。我应该如何进行?我在文档中找不到有关按操作分组的太多信息。

【问题讨论】:

    标签: r group-by microsoft-r revoscaler


    【解决方案1】:

    如果你想创建一个新的 xdf 文件,我建议使用“RevoPemaR”库,它包含在 ML 服务器中。如果您添加一个可重现的示例会很好,但答案可能是这样的:

    library(RevoPemaR)
    byGroupPemaObj <- PemaByGroup()
    groupVals <- pemaCompute(
    pemaObj = byGroupPemaObj, 
    data = "input.xdf",
    outData = "output.xdf", 
    groupByVar =  c("A", "B", "C"), 
    computeVars = c("D"),
        fnList = list(
         sum= list(FUN = sum, x = NULL, na.rm = TRUE),
         min= list(FUN = min, x = NULL, na.rm = TRUE)
         max= list(FUN = max, x = NULL, na.rm = TRUE),
         mean= list(FUN = mean, x = NULL, na.rm = TRUE),
         sd = list(FUN = sd, x = NULL, na.rm = TRUE)
        )
    )
    

    但您还有另一个选择,即 rxSummary。对于每个变量:

    rxSummary(D~F(A), 
        data = "input.xdf" ,
        byGroupOutFile = "out.xdf", 
        summaryStats = c( "Mean", "StdDev", "Min", "Max", "Sum")
    )
    

    【讨论】:

      【解决方案2】:

      dplyrXdf package 允许您对 Xdf 文件执行类似的 dplyr 操作。

      library(dplyrXdf)
      src <- RxXdfData("src.xdf")
      dest <- src %>%
          group_by(A, B, C) %>%
          summarise(sum=sum(D), min=min(D), max=max(D), mean=mean(D), sd=sd(D))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-15
        相关资源
        最近更新 更多