我希望使用Gota's cool dataframe in go获取数据框的列总和。
我从here看到有一种方法可以将函数应用于系列,看起来很好,就是这样做:
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,因为这些是记录here。也就是说,成语问题在于,如果我缺少内置插件,那将会很棒。