我試圖弄清楚如何向表中添加新列,該表將填充依賴該行中其他資料的資料。 我們在數據框中進行了多次發酵。 每一項都有一個空白值。 我希望將每次發酵的空白值放入新列中,以便我可以從處理值中減去它。 另外,如果有比建立新列更好的方法來做到這一點,那就太好了! 謝謝。
組成範例資料:
| 發酵 | 治療 | 價值 | 發酵空白值 |
| A | 1 | 98 | 6 |
| A | 2 | 73 | 6 |
| A | 空白的 | 6 | 6 |
| 乙 | 1 | 84 | 5 |
| 乙 | 2 | 86 | 5 |
| 乙 | 空白的 | 5 | 5 |
當治療=空白時的「值」總是小於當治療不為空白時的值嗎?如果是這樣,你可以只使用 ColMin 函數,透過治療。如果不是,我認為執行類似操作的一種有點笨拙的方法是先建立一個列,使 Treatment 不等於 Blank = 1 且 Treatment = Blank 等於 0,然後使用 ColMin By 方法。
如果不在新列中,您將在哪裡獲得該值?
這是一個如何將其新增為新列的公式
Col Sum(If(:Treatment == "Blank", :Value, .), :Fermentation)
當我嘗試這個表達式時,我收到一條錯誤訊息
在存取或評估「Col Sum」時需要數字列,Col Sum/*###*/IF(:Treatment == "Blank", :Value,.):Fermentation)
「值」列是數字連續的,所以我不確定它不喜歡表達式的哪一部分
資料表中的值列很可能未格式化為數字(很可能是字元)。
這是一個帶有範例表的腳本,可以正常工作。 查看左側的列及其建模類型,值是連續的(在JMP 中不能有資料類型= 字元、建模類型= 連續(您可以有數字標稱,但無法直接從建模類型中看到. ..) 。
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(6),
Compress File When Saved(1),
New Column("Fermentation", Character, "Nominal", Set Values({"A", "A", "A", "B", "B", "B"})),
New Column("Treatment",
Character(16),
"Nominal",
Set Values({"1", "2", "Blank", "1", "2", "Blank"})
),
New Column("Value",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([98, 73, 6, 84, 86, 5])
),
New Column("Fermentation Blank Value",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([6, 6, 6, 5, 5, 5])
)
);
dt << New Column("Val", Numeric, Continuous, Formula(
Col Sum(If(:Treatment == "Blank", :Value, .), :Fermentation)
));
