在公式中使用循環你好,
是否可以在列公式中使用循環? 例如,我有一個名為TEST 的列,我寫入(i=1, i<5, i++, :TEST=char(i)) ...但我沒有得到任何內容,在我點擊後該列為空白應用/確定。 從循環中我希望得到該列中的每一行都是 4。
抱歉問了這麼簡單的問題,但快速瀏覽「使用 JMP」手冊的附錄 A 無法找到答案。
謝謝,
艾哈邁德
回覆:在公式中使用循環我確實認為您目前對公式用法的理解是錯誤的。我對您對公式的預期結果感到特別困惑
For( i=0, i<=5, i++, :Strain )
預設情況下,每行運行一次公式。因此,大多數時候不會使用 For() 迴圈。
我附上了一個資料表,其中應用了 4 個不同的公式。我希望,如果您查看不同的公式,它將幫助您調整對公式工作原理的理解。
回覆:在公式中使用循環非常感謝您的幫助/回覆。
關於我曾經嘗試填充“%elongation”列中的前五行的簡單 for 循環,我很好奇為什麼該列保持不變/空白。 我在如何使用公式和/或定義參數方面是否完全偏離了目標?
在學習 JMP 和 JSL 的早期階段,嘗試從錯誤中學習。
再次感謝您的幫忙!
回覆:在公式中使用循環這是建立伸長率百分比的公式。這不是一個非常有效的公式,但無論數據的順序如何,它都會找到值。
curForm = :Formulation;
curStrip = :Strip;
theRow = (Current Data Table() << get rows where(
:Formulation == curForm & :Strip == curStrip & :Stress == :Tensile Strength
))[1];
:Strain[theRow];
如果資料按配方和條帶排序,則可以使用下面更有效的公式。
If( Row() == 1 | :Formulation != Lag( :Formulation ) | :Strip != Lag( :Strip ),
curForm = :Formulation;
curStrip = :Strip;
theRow = (Current Data Table() << get rows where(
:Formulation == curForm & :Strip == curStrip & :Stress == :Tensile Strength
))[1];
);
:Strain[theRow];
回覆:在公式中使用循環非常感謝您的回覆。
我試圖解決的最後一個問題如下:我有多個配方的多個測試條的應力應變數據(請參閱隨附的 JMP 資料文件)。 附表包含 4 個不同的配方+條“組”,即)FormA/strip1、FormA/strip2、FormB/strip1、FormB/strip2... 對於每組,我需要確定 1) 最大應力(拉伸強度)和 2) 與最大應力相關的應變。 為了確定最大應力,我創建了「拉伸強度」列,並在公式編輯器中簡單地使用了「Col Max()」(見下圖)

現在,我希望用與每組最大應力(拉伸強度)相關的應變值填充「%伸長率」列,這就是我的問題所在。我想知道是否有一種方法可以使用列公式(或 JSL 腳本)來完成此操作,而不是透過表格手動識別這些應變值並填充“%伸長率”列。
我在想這可能涉及循環和/或條件函數的組合。
最初,我嘗試使用 for 循環迭代“應力”列,以檢查給定行中的應力是否=拉伸強度(如果是,則使用關聯的應變值填充“%伸長率”列)。 有關初始列公式/嘗試,請參閱隨附的 JPG 檔案「應力應變資料_jmp 社群說明_迭代嘗試」。 此列保持不變/空白。
然後,我嘗試簡單地使用給定行中的應變值填充“%elongation”列中的前 5 行(請參閱隨附的 JPG 檔案“stress-strain data_jmp Community help_for Loop”)。 專欄仍然空白,這就是促使我發表第一篇文章的原因。 我假設我使用這些函數的方式有關鍵錯誤。
**此外,我認識到我最初的公式對於我的最終目標來說太簡單。
對於冗長的帖子以及我是否有任何不清楚的地方表示歉意。 我很樂意提供任何澄清。 我對 JMP 還很陌生,因此任何有關這方面的建議/幫助將不勝感激。 先感謝您。
回覆:在公式中使用循環你的具體問題是什麼。您可以發布您目前使用的不適合您的公式嗎?
回覆:在公式中使用循環您好,我第一次嘗試在列公式中使用循環,我似乎遇到了您原來的問題。
您能否澄清一下您是如何解決這個問題的,以及您所說的作業應該在循環之外是什麼意思?
謝謝!
回覆:在公式中使用循環無需回覆....找到問題了,謝謝! 賦值應該在循環之外。