Recoder plusieurs valeurs dans plusieurs colonnesBonjour les experts JMP,
J'essaie de recoder 103 colonnes de données dans un tableau de données. De nombreux recodages doivent être effectués dans chaque colonne. J'essayais de suivre ce post :
https://community.jmp.com/t5/Discussions/Recode-multiple-columns-with-JSL-script/mp/7865#M7859
mais utilisez recode au lieu de "if".
Je pense que mon problème vient des "cols" que j'ai utilisés. Je ne sais pas comment référencer la colonne que je cible et passer d'une colonne à l'autre avec chaque boucle à l'intérieur du "pour".
Merci pour votre aide!
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 : Recoder plusieurs valeurs dans plusieurs colonnesMerci beaucoup!Re : Recoder plusieurs valeurs dans plusieurs colonnesVous avez 2 problèmes.
- La syntaxe appropriée pour utiliser un indice est de l'inclure entre "[ ]" et non "( )".
- Vous devez indiquer à JMP que Cols[i] doit être utilisé comme référence de colonne
Voir le script corrigé ci-dessous
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", ".",
"-", "."
)
)
);