Foxtable(狐表)用户栏目专家坐堂 → 甜哥帮我一下


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

主题:甜哥帮我一下

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/10 10:28:00 [显示全部帖子]

学会循环行,循环列,然后计算,如计算均值

 

Dim t As Table = Tables("脱毒马铃薯培养基15x14正交试验数据")
For Each r As Row In t.Rows
    If r("培养基编号") <> "平均群落" AndAlso r("培养基编号") <> "温落比" Then
        Dim sum1 As Double = 0
        Dim count1 As Double = 0
        For Each c As Col In t.Cols
            If c.name.StartsWith("培养皿_") Then
                sum1 += r(c.name)
                count1 += 1
            End If
        Next
        msgbox(r("培养基编号") & sum1 / count1)
    End If
Next

 

那么计算每列的总值,那就循环每一列,然后再循环每一行,即可计算。

 

最后得到计算结果以后,读取某一行的值,读取某一列的值,计算即可。

 

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/10 10:30:00 [显示全部帖子]

要学习一下如何编写代码,并不是每个需求都要别人帮你完成的,别人只能指点你解决某一些难点。编写代码还是要你去完成的。

 

先学会基础语法吧,看看视频教程 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=67187

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/10 14:48:00 [显示全部帖子]

以下是引用yfy13338431925在2018/12/10 14:34:00的发言:

甜哥你好!

温落比大的列,按大小值排在最左边,也是一种排序,温落比>0.8,就在这个数值上边标记**

像这样


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20181210143310.png

 

Dim ls As new List(Of String)
Dim dt As Table = Tables("脱毒马铃薯培养基15x14正交试验数据")
Dim r As Row = dt.rows(dt.findrow("培养基编号='温落比'"))
For Each dc As Col In dt.Cols
    If dc.Caption.StartsWith("培养皿_") Then
        ls.add(dc.name)
    End If
Next
Dim ary1(ls.count-1) As Double
Dim ary2 = ls.ToArray
For i As Integer = 0 To ary2.length-1
    ary1(i) = val(r(ary2(i)))
Next
array.sort(ary1, ary2)
For i As Integer = 0 To ary2.length-1
    dt.Cols(ary2(i)).Move(1)
    If val(r(ary2(i))) > 0.8 Then
        r(ary2(i)) = r(ary2(i)).trim("*") & "**"
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/10 16:56:00 [显示全部帖子]

群落计算,参考

 

Dim t As Table = Tables("脱毒马铃薯培养基15x14正交试验数据")
For Each c As Col In t.Cols
    If c.name.StartsWith("培养皿_") Then
        Dim sum1 As Double = 0
        Dim count1 As Double = 0
        For Each r As Row In t.Rows
            If r("培养基编号") <> "平均群落" AndAlso r("培养基编号") <> "温落比" Then
                sum1 += r(c.name)
                count1 += 1
            End If
        Next
        msgbox(c.name & "  " & sum1 / count1)
    End If
Next

 

把三段代码整合起来即可。看不懂代码,建议先去看视频教程

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=67187

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/10 17:48:00 [显示全部帖子]

以下是引用yfy13338431925在2018/12/10 17:28:00的发言:
从字符串“”到类型“Double”的转换无效。

 

改成

 

Dim t As Table = Tables("脱毒马铃薯培养基15x14正交试验数据")
For Each c As Col In t.Cols
    If c.name.StartsWith("培养皿_") Then
        Dim sum1 As Double = 0
        Dim count1 As Double = 0
        For Each r As Row In t.Rows
            If r("培养基编号") <> "平均群落" AndAlso r("培养基编号") <> "温落比" Then
                sum1 += val(r(c.name))
                count1 += 1
            End If
        Next
        msgbox(c.name & "  " & sum1 / count1)
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/11 8:56:00 [显示全部帖子]

以下是引用yfy13338431925在2018/12/10 23:11:00的发言:

值您已经算出来了,就是没有对应到列上,最后一步就是把温落差的列从大到小从左向右排序,

 

参考8楼的代码。你要学会看代码和运用代码啊,不是每一个功能都要别人帮你做好的啊。不然下次、下下次还要依照你的公式帮你计算?

 

[此贴子已经被作者于2018/12/11 8:56:09编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/11 10:51:00 [显示全部帖子]

参考代码,细节自己调整

 

Dim t As Table = Tables("脱毒马铃薯培养基15x14正交试验数据")
t.DataTable.DeleteFor("培养基编号 in ('平均群落', '温落比')")
Dim ary(t.Rows.count-1) As Double
Dim ii As Integer = 0
For Each r As Row In t.Rows
    Dim sum1 As Double = 0
    Dim count1 As Double = 0
    For Each c As Col In t.Cols
        If c.name.StartsWith("培养皿_") Then
            sum1 += val(r(c.name))
            count1 += 1
        End If
    Next
    r("均值") = sum1 / count1
    ary(ii) = sum1 / count1
    ii += 1
Next
Dim nr1 = t.AddNew
nr1("培养基编号") = "平均群落"
Dim nr2 = t.AddNew
nr2("培养基编号") = "温落比"
For Each c As Col In t.Cols
    If c.name.StartsWith("培养皿_") Then
        Dim sum1 As Double = 0
        Dim count1 As Double = 0
        For Each r As Row In t.Rows
            If r("培养基编号") <> "平均群落" AndAlso r("培养基编号") <> "温落比" Then
                sum1 += val(r(c.name))
                count1 += 1
            End If
        Next
        nr1(c.name) = sum1 / count1
        Dim sum As Double = 0
        For Each a As Double In ary
            sum += a / (sum1 / count1)
        Next
        nr2(c.name) = format(sum / ary.length, "0.0000")
    End If
Next

Dim ls As new List(Of String)
Dim dt As Table = Tables("脱毒马铃薯培养基15x14正交试验数据")
For Each dc As Col In dt.Cols
    If dc.Caption.StartsWith("培养皿_") Then
        ls.add(dc.name)
    End If
Next
Dim ary1(ls.count-1) As Double
Dim ary2 = ls.ToArray
For i As Integer = 0 To ary2.length-1
    ary1(i) = val(nr2(ary2(i)))
Next
array.sort(ary1, ary2)
For i As Integer = 0 To ary2.length-1
    dt.Cols(ary2(i)).Move(1)
    If val(nr2(ary2(i))) > 0.8 Then
        nr2(ary2(i)) = nr2(ary2(i)).trim("*") & "**"
    End If
Next

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/11 14:40:00 [显示全部帖子]

nr3("培养皿_" & i) = ("极显著")

 

改成

 

nr3(ary2(i)) = "极显著"


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/11 16:39:00 [显示全部帖子]

以下是引用y2287958在2018/12/11 14:36:00的发言:

论坛的收件箱

 

六尾狐以下的等级,无法在论坛收发短信的。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/28 17:40:00 [显示全部帖子]

1、计算27%的行数是多少行。

 

2、循环每列,循环头部n行、尾部n行,计算得到值。

 


 回到顶部
总数 12 1 2 下一页