列公式、相對值計算我一直在嘗試為資料表編寫一個新的列公式,其中計算值根據左側列的值而變化。 我的意思是使用“Big Class”範例檔案的範例。 假設有 200 行而不是 20 行,每個名字連續出現 10 次,就好像身高和體重在十年內每年記錄一次,此外數據表中還會有另一列,其中包含收集數據的年份。 所有名字都具有相同的年份(即 2001、2002、2003... 2010)。 我想為新列寫一個公式,比方說是當年的高度減去 2003 年。 也許那一年他們開始服用維生素,你想展示這如何影響他們的身高成長。 然後,新欄位將填入諸如 -.5、0、.25、.7... 之類的值,所有這些值都是按名稱與 2003 年指定高度的相對值。
既然2003 年有20 年,那麼將使用什麼樣的if/while/summarize/by/conditional 公式,以便將每個姓名的身高與同一個人的身高進行比較,而不是與數據表另一端的身高進行比較?
先致謝!
回覆:列公式,相對值計算我透過按照您的建議添加更多條件來啟動並運行公式。 它運行良好,但在添加具有類似公式和程式碼行的另一列後,運行腳本會出現“無響應”錯誤。 運行調試器,我將問題歸結為“trow = dt << get rows where...”。 調試器表示超過 50% 的運行時間都花在了這上面。
根據我的理解,JMP 會同時運行腳本,因此插入一個 Wait(0);或 dt << 運行公式;會讓它喘口氣。 使用這些的最佳實踐是什麼? 我嘗試過以各種方式使用它們;只是公式前的一個到前後的幾個分散,但仍然出現無響應問題。
資料表大約有三千行,還有兩列公式,所以程式花時間思考是可以理解的。 我嘗試在第二台具有更高規格的計算機上運行該腳本,但得到相同的回應。 是否還有其他方法可以執行“trow = dt << get rows where...”,這將使程式更容易分解它?
回覆:列公式,相對值計算您所做的就是在公式中新增條件項。您需要將 IF 語句應用於公式以涵蓋您指定的條件。這沒有什麼困難的。我給你展示的方法仍然適用,你只需添加其他條件。
回覆:列公式,相對值計算的確。 在過去的幾天裡,我一直在失敗和成功中取得進展,緩慢但堅定。 這個小問題只是我一直堅持的劇本的一部分。回覆:列公式,相對值計算如果它有助於更好地解釋它,讓我們重新繪製這個例子。 對於 Big Class 樣本,我想要一個新列,它將所有女性 F 身高與 KATIE 的身高進行比較,並將所有男性 M 身高與 JOHN 的身高進行比較。 這個新列將被稱為“身高差”,每一行都會有該人的身高減去 KATIE 或 JOHN 的身高,具體取決於 M/F。 因此,第 2、3、4 行中 LOUISE、JANE 和 JACLYN 的「高度差」值分別為 2、-4 和 5。 (負數也是可以接受的)。 然而,當談到 TIM 時,他的身高將與 JOHN 的 65 歲而不是 KATIE 的 59 歲進行比較。
更進一步,如果我希望對清單中除年齡= 14 之外的每個名字都執行此操作,該怎麼辦?與KATIE 和JOHN 相比,年齡!= 14 的所有行仍將具有各自的「身高差」。 對於 14 歲的人,我希望該單元格為空白。
希望這能澄清問題,並提供一個可以工作的例子,而不是只考慮它。 如果它讓它變得更加混亂,那就完全忽略它:)
回覆:列公式,相對值計算這兩個假設都是正確的......但我建議你開始自己嘗試這些想法,而不是問。 一個人真的不是透過詢問來學習,而是透過嘗試......失敗然後成功
回覆:列公式,相對值計算對於 Col Min 的第三行,從技術上講,這些表格是字符,但根據此幫助頁面http://www.jmp.com/support/help/Statistical_Functions_2.shtml min 可以包含所有數字或所有字串,因此這不應該成為問題,對嗎?
其次,如果我不想將數據與最小值進行比較,而是與我選擇的最小值進行比較,該怎麼辦? 在這種情況下設定 :Year == " xy z" 就足夠了嗎?
回覆:列公式,相對值計算試試這樣的事情:
dt = Current Data Table();
tname = :name;
tyear = Col Min( :Year, :name );
trow = (dt << get rows where( tname == :name & tyear == :Year ))[1];
-1 * :weight[trow] + :weight[Row()];