Résumer la fonction avec plusieurs colonnes parTous,
J'essaie d'écrire un script qui obtient un nombre d'observations, potentiellement par 1 ou plusieurs colonnes (tel que déterminé par l'entrée de l'utilisateur). Je peux faire fonctionner le script pour une colonne, mais pas pour deux ou plus. Comment ajuster le code dans l'étape de la fonction de synthèse pour gérer 1+ colonnes ?
Ci-dessous un exemple de script :
varName = VarList <<GET selected="">0,
summarize(dt, cat = by(Column(dt,varName)),c=count);
//do other things
);
</GET>
Merci!
Sarah
Re : Résumer la fonction avec plusieurs colonnesDésolé pour la confusion sur la variable varname. Vous avez raison - c'est une liste de noms de colonnes qui dépendent de l'entrée de l'utilisateur à partir d'une interface graphique (c'est la varList - une zone de liste de colonnes). Et vous avez résolu mon problème. J'adore quand c'est une solution simple.
Pour mes connaissances futures, chaque fois que je veux référencer des noms de colonne de table de données dans une fonction en JSL, les choses devraient bien fonctionner avec la commande eval() qui l'entoure ? J'ai toujours l'impression d'avoir des problèmes avec cela - en particulier lors du codage de graphiques.
Merci beaucoup!
Sara
Re : Résumer la fonction avec plusieurs colonnesIl n'y a pas assez d'informations dans votre message pour être sûr que je connaisse le problème. Il serait utile de savoir ce qu'est VarList et quel est le résultat du message <
dt=open("$SAMPLE_DATA\Big Class.jmp");
varname={:age, :sex};
Si c'est le cas, alors vous devez mettre use Eval() autour de varname dans la fonction Summarize(), comme ceci :
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
varname = {:age, :sex};
//varName = VarList <<GET selected=""> 0,
Summarize( dt, cat = by( Eval( varname ) ), c = count );
//do other things
);</GET>