對多列中的多個值進行重新編碼JMP 專家您好,
我正在對資料表中的 103 列資料進行重新編碼。 每列中都需要進行相當多的重新編碼。 我試著關注這篇文章:
https://community.jmp.com/t5/Discussions/Recode-multiple-columns-with-JSL-script/mp/7865#M7859
但使用重新編碼而不是“if”。
我認為我的問題出在我使用的“cols”上。 我不確定如何引用我所定位的列,並透過「for」內的每個循環從一列移動到下一列。
感謝您的幫忙!
cols = dtconcat << get column names;
For Each Row( For(i=1, i<=N Items(cols), i++,
cols(i) = Match( cols(i),
"NQ", "0",
"Nq", "0",
"NA", ".",
"N/A", ".",
">30", "30",
">20", "20",
"<5", "0",
"<2.00", "0",
"<2.0", "0",
"<2", "0",
"<1", "0",
"<0.5", "0",
"<0.01", "0",
"#N/A", ".",
"-", ".",
cols(i))
)
);
回覆:重新編碼多列中的多個值非常感謝!回覆:重新編碼多列中的多個值你有 2 個問題。
- 使用下標的正確語法是將其括在“[ ]”而不是“( )”中。
- 您需要告訴 JMP Cols[i] 將用作列引用
請參閱下面更正後的腳本
cols = dtconcat << get column names;
For Each Row(
For( i = 1, i <= N Items( cols ), i++,
As Column( cols[i] ) =
Match( As Column( cols[i] ),
"NQ", "0",
"Nq", "0",
"NA", ".",
"N/A", ".",
">30", "30",
">20", "20",
"<5", "0",
"<2.00", "0",
"<2.0", "0",
"<2", "0",
"<1", "0",
"<0.5", "0",
"<0.01", "0",
"#N/A", ".",
"-", "."
)
)
);