Zählen von Werten über mehrere SpaltenHallo,
Ich bin hauptsächlich ein SPSS-Benutzer und neu bei JMP und möchte eine ähnliche/identische SPSS-Funktion zum „Zählen von Werten in Fällen“ in JMP finden.
Ich möchte die Anzahl der Befragten berechnen, die entweder „überhaupt nicht“, (0) „etwas“, (1) „etwas“, (2) „mäßig“ (3) und „extrem“ (4) angegeben haben. über die Spalten Know_1 bis Know_3.
Dann erstelle ich eine separate Spalte mit dem Namen „Know_total“, die die Gesamtzahl der Befragten mit jeder Antwort enthält, um eine Schlussfolgerung wie „35 der Befragten haben bei der Wissensbewertung mit „mäßig“ geantwortet“ zu erhalten.
Da es sich in SPSS um einen zweistufigen Prozess handelt (Zählen Sie die Anzahl bestimmter Werte> Rekodieren Sie sie in wünschenswerte Werte in einer anderen Spalte), und deshalb habe ich meine Frage so formuliert, aber bitte informieren Sie mich gegebenenfalls über eine schnellere Option .
Es ist mir egal, ob es in JSL ist oder nicht 

Re: Werte über mehrere Spalten zählenSie referenzieren Ihren Datensatz mit dem Namen „Neu“ mit einer Variablen „Neu“. Die Variable zeigt jedoch auf nichts. Dies sollte die Dinge beheben:
dt1 = data table("New");
dt2 = dt1 << Stack(
columns( :Know_1, :Know_2, :Know_3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
);Re: Werte über mehrere Spalten zählenHallo, pmroz
Richtig, aber als ich es dann mit dem Namen meines Datensatzes ("Neu") versuchte, funktionierte das Skript nicht (eher als wäre nichts passiert TT),
und ich bin einfach davon ausgegangen, dass alle Sequenzen von Skripten irgendwie benötigt werden und vielleicht hat die erste Sequenz des Skripts etwas damit zu tun ...
Stört es Sie, herauszufinden, was ich hier falsch gemacht habe?
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>
Danke
Re: Werte über mehrere Spalten zählenWir haben gerade Dummy-Tabellen erstellt und Werte mit dem Befehl SET VALUES hinzugefügt. Ich gehe davon aus, dass Ihre Daten bereits in Ihren Tabellen vorhanden sind?
Re: Werte über mehrere Spalten zählen
Hallo pmroz Und ian_jmp danke für die prompten antworten!
Ich habe nur noch eine Frage zu den Set Values ([]).
Ich habe insgesamt 3.465 Zeilen und es würde so aussehen
dt1 = Neue Tabelle( "", Zeilen hinzufügen( 3.465 ),
...?
So verstehe ich in dem von Ihnen bereitgestellten Skript, dass Set-Werte die numerischen Werte von Zeile 1 bis Zeile 6 sind, und mit der Änderung der Zeilennummern würde sich auch das Skript für Set-Werte ändern.
aber ich verstehe nicht, was es tut ... Entschuldigung, ich bin mit JSL nicht vertraut.
Re: Werte über mehrere Spalten zählenSie können auch die kategoriale Plattform verwenden, die sehr funktional ist. Der folgende Code gibt das obige Beispiel wieder:
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: Werte über mehrere Spalten zählenHier ist ein Ansatz, der STACK, eine Formelspalte und TABULATE verwendet. Ich bin davon ausgegangen, dass die ursprüngliche Tabelle Zahlen für die Antworten enthält.
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 ) ) )
);