你好,
我有一組原始數據(表 1),我正在嘗試將其編寫為表 2 中的結果。
如果任何數字低於 300,則會將“type1”字符串打印到“result1”列中。
如果任何數字超過 300,則會將“type2”字符串打印到“result2”列中。
| 數字 |
類型1 |
類型2 |
結果1 |
結果2 |
| 100 |
a1 |
a2 |
|
|
| 200 |
b1 |
b2 |
|
|
| 150 |
c1 |
c2 |
|
|
| 275 |
d1 |
d2 |
|
|
| 第555章 |
e1 |
e2 |
|
|
| 第424章 |
f1 |
f2 |
|
|
| 第572章 |
g1 |
g2 |
|
|
| 第783章 |
h1 |
小時2 |
|
|
| 125 |
i1 |
i2 |
|
|
表1:原始數據
| 數字 |
類型1 |
類型2 |
結果1 |
結果2 |
| 100 |
a1 |
a2 |
a1 |
|
| 200 |
b1 |
b2 |
b1 |
|
| 150 |
c1 |
c2 |
c1 |
|
| 275 |
d1 |
d2 |
d1 |
|
| 第555章 |
e1 |
e2 |
|
e2 |
| 第424章 |
f1 |
f2 |
|
f2 |
| 第572章 |
g1 |
g2 |
|
g2 |
| 第783章 |
h1 |
小時2 |
|
小時2 |
| 125 |
i1 |
i2 |
i1 |
|
表2:結果
到目前為止,我對腳本所做的工作如下所示。
dt = Current Data Table();
dt << New Column("result1",
Character,
"Nominal",
For Each Row(If(:Number << 300), :result1 == :type1, "")
);
dt << New Column("result2",
Character,
"Nominal",
For Each Row(If(:Number >> 300), :result2 == :type2, "")
);
我個人發現,使用類似 Excel 的方法來解決此類問題(其中使用應用於每列的單獨公式創建新列)是令人困惑且低效的。JMP 具有在“開放”JSL 代碼中直接修改數據表值的功能,可用於以更簡潔、更高效的方式解決問題。
// Create the new columns
dt << New Column( "result1", Character );
dt << New Column( "result2", Character );
// Populate the columns
For Each Row( If( :Number < 300, :result1 = :type1, :result2 = :type1 ) );
嗨 jthi,好的,我們將嘗試使用幫助信息。 該腳本有效。 謝謝您的幫助。
使用 >>/<< 作為比較並在列創建中使用 For Each Row 有幾個問題。 下面是使用 << Set Each Value 的工作語法的一個選項(不要說,如果值正好是 300,它將是空的)
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(9),
Compress File When Saved(1),
New Column("Number", Numeric, "Nominal", Format("Best", 9), Set Values([100, 200, 150, 275, 555, 424, 572, 783, 125])),
New Column("type1", Character(16), "Nominal", Set Values({"a1", "b1", "c1", "d1", "e1", "f1", "g1", "h1", "i1"})),
New Column("type2", Character(16), "Nominal", Set Values({"a2", "b2", "c2", "d2", "e2", "f2", "g2", "h2", "i2"}))
);
dt << New Column("result1", Character, "Nominal", << Set Each Value(
If(:Number < 300,
:type1
, //else
""
)
));
dt << New Column("result2", Character, Nominal, << Set Each Value(
If(:Number > 300,
:type2
, //else
""
)
));
我強烈建議直接從 JMP 的“幫助”菜單查看腳本索引,然後JMP 幫助頁面中的腳本編寫指南。還有其他腳本源,例如
JMP 腳本語言簡介了解語法