Erstellen und füllen Sie neue spaltenbasierte Kategorien in einer vorhandenen SpalteHallo,
Ich versuche, eine schnelle Abfrage zu erstellen, in der eine kategoriale Spalte (test_article) verwendet wird, um eine Reihe von Spalten zu erstellen, die nur eine Teilmenge der Informationen enthalten. Wenn das Skript wie vorgesehen funktioniert, würde die Tabelle am Ende zwei neue Spalten haben (PBS vs ...).
| test_article | Messung | PBS vs. 709547 | PBS vs. 709139 |
| PBS | 1.23 | PBS | PBS |
| PBS | 1.456 | PBS | PBS |
| 709547 | 4.56 | 709547 | AUSSCHLIESSEN |
709139 | 5.02 | AUSSCHLIESSEN | 709139 |
| 709139 | 6.02 | AUSSCHLIESSEN | 709139 |
| 709547 | 4,57 | 709547 | AUSSCHLIESSEN |
Ich habe das folgende Skript ausprobiert:
NamesDefaultToHere(1);
dt=current data table();
row = Associative Array( :test_article ) << Get Keys;
nc=N items (row);
For( i = 1, i <= nc, i++,
new column("PBS vs "|| row[i],"Character", "Nominal", Formula(If( :test_article == "PBS", :test_article,
If( :test_article == row[i],
"test",
"EXCLUDE"
)
))));Irgendwie werden mit Ausnahme von „PBS“ keine Werte in die neuen Spalten eingefügt.
Irgendwelche Vorschläge?
Vielen Dank
Sebastian
Betreff: Neue spaltenbasierte Kategorien in einer vorhandenen Spalte erstellen und füllenFunktioniert auch wie ein Zauber.
Vielen DankBetreff: Neue spaltenbasierte Kategorien in einer vorhandenen Spalte erstellen und füllenKlappt wunderbar!
DankeBetreff: Neue spaltenbasierte Kategorien in einer vorhandenen Spalte erstellen und füllenSie müssen den Wert von Zeile[i] in die Formel übernehmen. JMP wertet keine Ausdrücke im Formula()-Teil der New Column()-Nachricht aus.
Sie können verwenden Ersatz() um den tatsächlichen Wert von Zeile[i] in die Formel zu bekommen.
Names Default To Here( 1 );
dt = Current Data Table();
row = Associative Array( :test_article ) << Get Keys;
nc = N Items( row );
For( i = 1, i <= nc, i++,
Eval(
Substitute(
Expr(
New Column( "PBS vs " || row[i],
"Character",
"Nominal",
Formula( If( :test_article == "PBS" | :test_article == ri, :test_article, "EXCLUDE" ) )
)
),
Expr( ri ), Eval( row[i] )
)
)
);
Betreff: Neue spaltenbasierte Kategorien in einer vorhandenen Spalte erstellen und füllenDas Hauptproblem, das Sie haben, besteht darin, dass es in der Definition einer Formel keine Elemente geben kann, die ausgewertet werden müssen.JMP geht davon aus, dass alles innerhalb der Formeldefinition nur ausgewertet werden darf, wenn die Formel ausgeführt wird.
Daher muss die Formel, die an die Definition der neuen Spalte übergeben wird, in ihrer Syntax vollständig sein.Die Änderung Ihres Codes unten funktioniert mit Ihrer Beispieldatentabelle.
Names Default To Here( 1 );
dt = Current Data Table();
row = Associative Array( :test_article ) << Get Keys;
nc = N Items( row );
For( i = 1, i <= nc, i++,
Eval(
Parse(
"New Column( \!"PBS vs " || row[i] ||
"\!",
Character,
Nominal,
Formula(
if (Row() == 1, theTest = \!""
|| row[i] ||
"\!");
If( :test_article == \!"PBS\!",
zip=:test_article,
If( :test_article == theTest,
zip=\!"test\!",
zip=\!"EXCLUDE\!"
)
);
zip
)
)
);"
)
)
);
