Compter des valeurs sur plusieurs colonnesBonjour,
Je suis principalement un utilisateur SPSS et je découvre JMP, et je souhaite trouver une fonction SPSS similaire/identique de "compter les valeurs dans les cas" dans JMP.
Je souhaite calculer le nombre de répondants qui ont déclaré « Pas du tout », (0) « Légèrement », (1) « Plutôt », (2) « Modérément », (3) et « Extrêmement » (4) sur les colonnes Know_1 à Know_3.
Ensuite, je vais créer une colonne distincte appelée "Know_total" qui contient le nombre total de répondants avec chaque réponse pour donner une conclusion quelque chose comme "35 des répondants ont répondu "Modérément" dans l'évaluation des connaissances"
Parce que dans SPSS, c'est un processus en deux étapes (comptez le nombre de certaines valeurs> recodez-les en valeurs souhaitables dans une autre colonne), et c'est pourquoi j'ai formulé ma question de cette manière, mais s'il vous plaît renseignez-moi avec une option plus rapide le cas échéant .
Je me fiche que ce soit en JSL ou non 

Re : Compter des valeurs sur plusieurs colonnesVous référencez votre ensemble de données nommé "Nouveau" avec une variable Nouveau. Cependant, la variable ne pointe vers rien. Cela devrait arranger les choses :
dt1 = data table("New");
dt2 = dt1 << Stack(
columns( :Know_1, :Know_2, :Know_3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
);Re : Compter des valeurs sur plusieurs colonnesBonjour, pmroz
D'accord, mais quand j'ai essayé avec le nom de mon jeu de données ("Nouveau"), le script n'a pas fonctionné (plus comme si rien ne s'était passé TT),
et j'ai juste supposé que toutes les séquences de scripts étaient nécessaires d'une manière ou d'une autre et peut-être que la première séquence du script avait quelque chose à voir avec cela ...
Cela vous dérange-t-il de choisir ce que j'ai fait de mal ici ?
dt2 <SPAN class="token operator">=</SPAN> New <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN> Stack<SPAN class="token punctuation">(</SPAN>
columns<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Know_1<SPAN class="token punctuation">,</SPAN> <SPAN class="token punctuation">:</SPAN>Know_2<SPAN class="token punctuation">,</SPAN> <SPAN class="token punctuation">:</SPAN>Know_3 <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Source Label <SPAN class="token function">Column</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"Label"</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Stacked Data <SPAN class="token function">Column</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"Data"</SPAN> <SPAN class="token punctuation">)</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
dt2 <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN> <SPAN class="token function">New Column</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"Value"</SPAN><SPAN class="token punctuation">,</SPAN> Character<SPAN class="token punctuation">,</SPAN> <SPAN class="token string">"Nominal"</SPAN><SPAN class="token punctuation">,</SPAN>
Formula<SPAN class="token punctuation">(</SPAN>
<SPAN class="token function">If</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Data <SPAN class="token operator">==</SPAN> <SPAN class="token number">0</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">"Not at all"</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token punctuation">:</SPAN>Data <SPAN class="token operator">==</SPAN> <SPAN class="token number">1</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">"Slightly"</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token punctuation">:</SPAN>Data <SPAN class="token operator">==</SPAN> <SPAN class="token number">2</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">"Somewhat"</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token punctuation">:</SPAN>Data <SPAN class="token operator">==</SPAN> <SPAN class="token number">3</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">"Moderately"</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token punctuation">:</SPAN>Data <SPAN class="token operator">==</SPAN> <SPAN class="token number">4</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">"Extremely"</SPAN>
<SPAN class="token punctuation">)</SPAN>
<SPAN class="token punctuation">)</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
dtab <SPAN class="token operator">=</SPAN> dt2 <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN> Tabulate<SPAN class="token punctuation">(</SPAN>
<SPAN class="token function">Show</SPAN> Control Panel<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">0</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token function">Add</SPAN> Table<SPAN class="token punctuation">(</SPAN> <SPAN class="token function">Row</SPAN> Table<SPAN class="token punctuation">(</SPAN> Grouping Columns<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Value <SPAN class="token punctuation">)</SPAN> <SPAN class="token punctuation">)</SPAN> <SPAN class="token punctuation">)</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
Merci
Re : Compter des valeurs sur plusieurs colonnesNous étions juste en train de créer des tables factices et d'ajouter des valeurs avec la commande SET VALUES. Je m'attends à ce que vos données soient déjà présentes dans vos tables ?
Re : Compter des valeurs sur plusieurs colonnes
Bonjour pmroz et ian_jmp merci pour les réponses rapides!
J'ai juste une autre question sur les valeurs définies ([]).
J'ai un total de 3 465 lignes et cela ressemblerait à
dt1 = Nouveau tableau( "", Ajouter des lignes( 3 465 ),
...?
Ainsi, je comprends dans le script que vous avez fourni, les valeurs définies sont les valeurs numériques de la ligne 1 à la ligne 6, et avec le changement des numéros de ligne, le script de valeurs définies changerait également,
mais je ne comprends pas ce qu'il fait ... désolé, je ne suis pas familier avec JSL.
Re : Compter des valeurs sur plusieurs colonnesVous pouvez également envisager d'utiliser la plate-forme catégorique qui est très fonctionnelle. Le code ci-dessous reproduit l'exemple ci-dessus :
NamesDefaultToHere(1);
// Test data with 'Value Labels'
dt = New Table( "Test",
Add Rows( 6 ),
New Column( "Know_1",
Numeric,
"Ordinal",
Format( "Best", 12 ),
Value Labels(
{0 = "Not at all", 1 = "Slightly", 2 = "Somewhat", 3 = "Moderately", 4 = "Extremely"}
),
Use Value Labels( 1 ),
Set Values( [2, 1, 2, 3, 4, 2] )
),
New Column( "Know_2",
Numeric,
"Ordinal",
Format( "Best", 12 ),
Value Labels(
{0 = "Not at all", 1 = "Slightly", 2 = "Somewhat", 3 = "Moderately", 4 = "Extremely"}
),
Use Value Labels( 1 ),
Set Values( [2, 1, 2, 4, 2, 3] )
),
New Column( "Know_3",
Numeric,
"Ordinal",
Format( "Best", 12 ),
Value Labels(
{0 = "Not at all", 1 = "Slightly", 2 = "Somewhat", 3 = "Moderately", 4 = "Extremely"}
),
Use Value Labels( 1 ),
Set Values( [0, 1, 1, 1, 2, 4] )
)
);
// Try 'Analyze > Consumer Research > Categorical' with 'Multiple Resoponses'
dt << Categorical( Multiple Response( :Know_1, :Know_2, :Know_3 ), Legend( 0 ) );Re : Compter des valeurs sur plusieurs colonnesVoici une approche qui utilise STACK, une colonne de formules et TABULATE. J'ai supposé que le tableau d'origine avait des nombres pour les réponses.
dt1 = New Table( "", Add Rows( 6 ),
New Column( "Know_1", Numeric, "Ordinal", Format( "Best", 12 ),
Set Values( [2, 1, 2, 3, 4, 2] )
),
New Column( "Know_2", Numeric, "Ordinal", Format( "Best", 12 ),
Set Values( [2, 1, 2, 4, 2, 3] )
),
New Column( "Know_3", Numeric, "Ordinal", Format( "Best", 12 ),
Set Values( [0, 1, 1, 1, 2, 4] )
)
);
dt2 = dt1 << Stack(
columns( :Know_1, :Know_2, :Know_3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
);
dt2 << New Column( "Value", Character, "Nominal",
Formula(
If( :Data == 0, "Not at all",
:Data == 1, "Slightly",
:Data == 2, "Somewhat",
:Data == 3, "Moderately",
:Data == 4, "Extremely"
)
)
);
dtab = dt2 << Tabulate(
Show Control Panel( 0 ),
Add Table( Row Table( Grouping Columns( :Value ) ) )
);