Script de recodage arbitraireJ'ai une variable de caractère avec un nombre inconnu de niveaux. Les niveaux ont des noms de texte longs et je voudrais les recoder en quelque chose de plus court, comme juste 1, 2, 3, etc.
Je comprends comment utiliser Match pour recoder un ensemble de niveaux donné en d'autres valeurs spécifiques, mais je voudrais demander comment procéder si le jeu initial est inconnu. C'est-à-dire que, pour chaque nouveau fichier de données, la variable à recoder peut avoir un nombre différent d'entrées différentes.
Merci!
Re: Script de recodage arbitraireA-ha! Je pensais que "dt =" était inhabituel. Il s'est avéré que je l'ai contourné en écrivant "dt2 =". Probablement un peu inefficace mais cela a fonctionné. Depuis, je l'ai changé en "dt <<" et cela fonctionne également très bien.
Merci encore!
Re: Script de recodage arbitraireOops,
la nouvelle déclaration de colonne devrait être
dt << New Column(.................
Re: Script de recodage arbitrairePS., On dirait que dt se voit attribuer cette nouvelle colonne. La table de données d'origine n'est plus référencée par dt. Est-ce correct?
Re: Script de recodage arbitraireOn dirait que j'ai parlé bientôt ... ce code crée la nouvelle variable souhaitée, mais maintenant tout mon code après cela ne fonctionne pas. En particulier, j'ai essayé de déplacer la nouvelle variable, puis d'exclure certaines lignes. Mon déménagement et exclusion fonctionnaient bien auparavant, mais la nouvelle variable est maintenant exclue et masquée?
Y a-t-il quelque chose qui doit être réinitialisé ou désactivé? (Au fait, j'utilise la version 12)
Merci!
Re: Script de recodage arbitraireCela a très bien fonctionné! Merci beaucoup!
Re: Script de recodage arbitraireVoici un petit morceau de JSL qui donne un exemple de création d'une valeur numérique à partir des valeurs de caractère trouvées dans une colonne.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Animals.jmp" );
dt = New Column( "Animal Category",
formula(
If( Row() == 1,
Summarize( bygroup = by( :species ) )
);
Loc( bygroup, :species )[1];
)
);