3

我希望在 go 中使用 Gota 的酷数据框获取数据框的列总和。

我从这里看到有一种方法可以将函数应用于看起来不错的系列,那就是:

mean := func(s series.Series) series.Series {
    floats := s.Float()
    sum := 0.0
    for _, f := range floats {
        sum += f
    }
    return series.Floats(sum / float64(len(floats)))
}
df.Cbind(mean)
df.Rbind(mean)

例如,只需删除除法即可获得求和函数而不是平均值。也就是说,如果我只想对 1 列求和,我是否坚持编写自己的简单求和函数,或者是否有像 R 那样更惯用和内置的东西

sum(df[,c("mycol")])

?

我目前正在与:

    sum := func(s series.Series) series.Series {
    floats := s.Float()
    sum := 0.0
    for _, f := range floats {
        sum += f
    }
    return series.Floats(sum)
    }

df.Select([]string{"mycol"})).CBind(sum)

在我子集到仅感兴趣的列之后的 df 变为:

[31x1] DataFrame

    mycol
 0: 8.300000            
 1: 8.300000            
 2: 16.750000           
 3: 9.030000            
    ...                 
    <float>             

我得到类似的东西:

cannot use sum (type func(series.Series) series.Series) as type dataframe.DataFrame in argument to df.Select([]string literal).CBind

更新

啊,部分解决方案是文档使用 Cbind/Rbind 我认为 Capply/Rapply 的意思,因为这些都记录在这里。也就是说,成语问题在于,如果我缺少内置插件,那就太好了。

4

0 回答 0