Foxtable(狐表)用户栏目专家坐堂 → [求助]有两列分组的表如何求他们的标准差


  共有2911人关注过本帖树形打印复制链接

主题:[求助]有两列分组的表如何求他们的标准差

帅哥哟,离线,有人找我吗?
jjjeyes
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:305 积分:2695 威望:0 精华:0 注册:2011/10/29 16:26:00
[求助]有两列分组的表如何求他们的标准差  发帖心情 Post By:2018/1/7 23:12:00 [只看该作者]

有个表要由两列“性别”和“年级编号”进行分组后求人数、身高平均数、身高标准差、身高指标和、
如下例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.zip

最后得到下表:

图片点击可在新窗口打开查看此主题相关图片如下:tim截图20180107224955.jpg
图片点击可在新窗口打开查看

已经可以求得人数、身高平均数、身高指标和,但是身高标准差不知道怎么求,请赐教!
代码:
Dim g As New GroupTableBuilder("单项指标统计表", DataTables("评价结果"))
g.Groups.AddDef("性别")
g.Groups.AddDef("年级编号")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "人数")
g.Totals.AddDef("身高", AggregateEnum.Average, "身高平均数")
g.Totals.AddDef("身高", "身高累计值")
g.Decimals = 2
g.Build()
MainTable = Tables("单项指标统计表")



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/7 23:22:00 [只看该作者]

无法直接统计,需要生成后,循环每一行,然后查询计算的。

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=92787&skin=0

 


 回到顶部
帅哥哟,离线,有人找我吗?
jjjeyes
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:305 积分:2695 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2018/1/7 23:28:00 [只看该作者]

但是,在设置汇总模式下是有Std:标准偏差和StdPop:总体标准偏差两个参数的啊!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/8 9:12:00 [只看该作者]

代码这样写

 

Dim g As New GroupTableBuilder("单项指标统计表", DataTables("评价结果"))
g.Groups.AddDef("性别")
g.Groups.AddDef("年级编号")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "人数")
g.Totals.AddDef("身高", AggregateEnum.Average, "身高平均数")
g.Totals.AddDef("身高", AggregateEnum.std, "身高标准差")
g.Totals.AddDef("身高", "身高累计值")
g.Decimals = 2
g.Build()
Dim t As Table = Tables("单项指标统计表")
For Each r As Row In t.Rows
    If r("性别") = "1" Then
        r("性别") = "男"
    Else
        r("性别") = "女"
    End If
    r("身高标准差") = DataTables("评价结果").Compute("StDev(身高)", "年级编号 = '" & r("年级编号") & "'")
Next
MainTable = t


 回到顶部
帅哥哟,离线,有人找我吗?
jjjeyes
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:305 积分:2695 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2018/1/8 11:11:00 [只看该作者]

这个值算出来不对!

图片点击可在新窗口打开查看此主题相关图片如下:tim截图20180108110859.jpg
图片点击可在新窗口打开查看
男女身高标准差是一样的!!


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/8 11:13:00 [只看该作者]

Dim g As New GroupTableBuilder("单项指标统计表", DataTables("评价结果"))
g.Groups.AddDef("性别")
g.Groups.AddDef("年级编号")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "人数")
g.Totals.AddDef("身高", AggregateEnum.Average, "身高平均数")
g.Totals.AddDef("身高", AggregateEnum.std, "身高标准差")
g.Totals.AddDef("身高", "身高累计值")
g.Decimals = 2
g.Build()
Dim t As Table = Tables("单项指标统计表")
For Each r As Row In t.Rows
    r("身高标准差") = DataTables("评价结果").Compute("StDev(身高)", "年级编号 = '" & r("年级编号") & "' and 性别 = '" & r("性别") & "'")

    If r("性别") = "1" Then
        r("性别") = "男"
    Else
        r("性别") = "女"
    End If
Next
MainTable = t


 回到顶部