Hallo JMP-Experten,
Ich möchte 103 Datenspalten in einer Datentabelle neu kodieren. In jeder Spalte müssen einige Umkodierungen vorgenommen werden. Ich habe versucht, diesem Beitrag zu folgen:
https://community.jmp.com/t5/Discussions/Recode-multiple-columns-with-JSL-script/mp/7865#M7859
aber verwenden Sie recode anstelle von „if“.
Ich glaube, mein Problem liegt an den „Spalten“, die ich verwendet habe. Ich bin mir nicht sicher, wie ich auf die Spalte verweisen soll, auf die ich abziele, und wie ich mit jeder Schleife innerhalb des „for“ von einer Spalte zur nächsten wechseln soll.
Ich danke Ihnen für Ihre Hilfe!
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))
)
);
Sie haben zwei Probleme.
- Die richtige Syntax für die Verwendung eines Index besteht darin, ihn in „[ ]“ und nicht in „( )“ einzuschließen.
- Sie müssen JMP mitteilen, dass Cols[i] als Spaltenreferenz verwendet werden soll
Siehe das korrigierte Skript unten
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", ".",
"-", "."
)
)
);