複数の値を複数の列に再コード化するJMP エキスパートの皆様、こんにちは。
データテーブル内の 103 列のデータを再コード化しようとしています。 各列でかなりの数の再コードを実行する必要があります。 私はこの投稿をフォローしようとしていました:
https://community.jmp.com/t5/Discussions/Recode-multiple-columns-with-JSL-script/mp/7865#M7859
ただし、「if」の代わりに recode を使用します。
私の問題は、使用した「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))
)
);
Re: 複数の列の複数の値を再コード化するどうもありがとうございます!Re: 複数の列の複数の値を再コード化する問題が 2 つあります。
- 添字を使用するための適切な構文は、添字を「( )」ではなく「[ ]」で囲むことです。
- Cols[i] が列参照として使用されることを JMP に伝える必要があります。
以下の修正されたスクリプトを参照してください
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", ".",
"-", "."
)
)
);