如何使用公式計算所選行的平均值大家好,
首先,我基本上是 JMP 的新用戶,所以我不知道如何編寫任何腳本。只是基本公式等。這是我需要做的,但不知道如何做。
我想先計算每個相同「樣品號」的「青色素含量」的平均值(目標是有一列計算我在「三次進樣的平均值」列中放置的內容。
同樣,我想要一列給出每個“發展階段”的這三個平均值的平均值,我已將目標放在標有“發展階段的平均值”的列中
這不是移動平均線... 我想也許公式中的條件語句會起作用? 或者也許是一個使用某種第三列(例如“ID 代碼”列)作為標識符來告訴它要平均哪些行的公式?
謝謝!
基礎資料分析與建模視窗回覆:如何使用公式計算所選行的平均值您需要的 2 個公式是
If( :Sample Number != :Sample Number[Row() + 1] | Row() == N Rows( Current Data Table() ),
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Sample Number )
)
和
If( :Developmental Stage != :Developmental Stage[Row() + 1] | Row() == N Rows( Current Data Table() ),
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Developmental Stage )
)

回覆:如何使用公式計算所選行的平均值你好!
感謝您的答覆!我嘗試過並且有效。我只是不太明白它是如何運作的...
到目前為止我想我明白了
如果樣本數不等於下一行的樣本數
或者
目前行數等於目前資料表的總行數? (這部分我很困惑。另外,當我輸入此內容時,我收到有關使用“當前資料表”部分的警告。
然後
計算樣本數相同時「花青素含量(ng/kg)?」的平均值?
能否向這位初學者解釋一下該公式的工作原理?
後續問題 - 對於我的完整數據表,我顯然會有更多的數據,其中的行具有不同的品種名稱,但具有相同的樣品編號和注射編號,如我的示例所示。這些公式仍然有效嗎?我需要考慮品種名稱才能將它們分開嗎?
謝謝
回覆:如何使用公式計算所選行的平均值計算公式其實非常簡單。您的規格要求結果僅顯示在特定行上,這使得計算有點混亂。
當公式套用於給定列時,JMP 只需採用該公式並將其應用於第 1 行,然後應用於第 2 行,依此類推到表中的最後一行。因此,下面的公式將給你想要的答案
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Sample Number )
基本上,該公式計算「花青素含量 (ng/kg)」列的平均值,並將其寫入該列的行中。因為也指定了“按”列,“樣本數”,所以它計算為“樣本數”找到的每個等級的平均值,然後將其寫入新列的行。

但您的要求是僅在最後一行顯示每個「樣本數字」的平均值。為了識別這些行,需要有一些可以透過程式設計方式進行評估的東西。在本例中,我選擇檢查目前行處理後該行中「Sample Number」的值是否有變更。這樣公式就變成了
If( :Sample Number != :Sample Number[Row() + 1] ,
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Sample Number )
)
If() 子句解釋為:如果「Sample Number」的目前值不等於目前行之外的第 1 行( Row() + 1 )中「Sample Number」的值,則進行計算。如果這個比較不正確,那麼它就什麼都不做。
因此,除了數據表中的最後一行之外,這非常有效。當 JMP 嘗試查看資料表中最後一行以外的第 1 行時,它沒有可比較的行,因此無法做出決定。

因此,公式也需要考慮到這個問題。
If( :Sample Number != :Sample Number[Row() + 1] | Row() == N Rows( Current Data Table() ),
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Sample Number )
)
這裡附加子句檢查目前行 Row() 是否等於資料表中的行數 N Rows( Current data Table().第二個子句用「|」分隔這表示如果第一個子句“OR”第二個子句為真,則處理計算。
第二個公式列遵循相同的邏輯,只是「按」列改為「發展階段」。
關於需要更改哪些內容才能在完整數據表上使用它。我不知道你所說的“品種」。公式正常工作的要求是數據按照“發育階段”和“樣品編號”的順序排序,並且“花青素含量(ng/kg)”是平均值所在的列的名稱計算於.如果其中任何列的名稱發生更改,則需要在公式中交換新名稱。
回覆:如何使用公式計算所選行的平均值其他選項是將 If 與 Col Min 和 Col Max 函數一起使用,但如果您要使用此功能,請務必小心,因為這可能會因為使用 Row() 與 Col Max/Col Min (使在「設定每個值」中使用公式表達式以及在「Col」統計公式中使用表達式作為第一個參數支援的行為)
列平均 1
If(Row() == Col Max(Row(), :Sample Number),
Col Mean(:"Amount of Cyanidin (ng/kg)"n, :Sample Number)
)
列平均2
If(Row() == Col Max(Row(), :Developmental Stage),
Col Mean(:CoAvg1, :Developmental Stage)
)

回覆:如何使用公式計算所選行的平均值非常感謝。多虧了你的解釋,我想我現在已經明白了!
回覆:如何使用公式計算所選行的平均值我知道這是個老帖子了,但我當時也在找同樣的問題,然後找到了我以前寫的一個腳本,它能很輕鬆地實現這個功能。我不記得最初是從哪裡找到的了,但我很高興它還能用。下面的例子是針對一系列的行。
row_range_lower = rownum1;
row_range_upper = rownum2;
dtx<
rowrangefull=dtx< freq_avg = Col mean(If( Selected(),列名), . );