Ich möchte einen Wert in einer numerischen Spalte verwenden, um einen Verweis auf dieselbe Spaltennummer zu erstellenIch habe eine Spalte mit Ganzzahlen erstellt, die ich nun verwenden möchte, um Werte in Spalten mit derselben Nummer zu referenzieren. Spalte 9 enthält die Nummer, die angibt, auf welche Spalte durch eine Formel in Spalte 10 verwiesen werden soll. Nachfolgend sind einige Dinge aufgeführt, die nicht funktionieren.



Automatisierung und SkriptingBetreff: Ich möchte einen Wert in einer numerischen Spalte verwenden, um einen Verweis auf dieselbe Spaltennummer zu erstellenWelche Fehlermeldung wird angezeigt, wenn Sie mit der Maus über den Code mit der roten Unterstreichung fahren?
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "Column 9",
Numeric,
Set Values( [1, 2, 3, 4, 5] )
);
New Column( "Column 10",
Expression,
Formula( Try( Column( :Column 9 ) ) )
)
kein Fehler:


Wenn Sie nicht die Spalten abrufen möchten, sondern den in den Spalten gespeicherten Wert , verwenden Sie Als Spalte() anstelle von Spalte():
Robuste Spaltenreferenz
... oder fügen Sie einen Zeilenindex zu Column() hinzu:
Spalte(Spalte)[Zeile()] oder Spalte(Spalte)[]
New Column( "Column 10b",
Character,
Formula( Try( Char( Column( :Column 9 )[Row()] ) ) )
)

Außerdem,
- Bitte stellen Sie sicher, dass der berechnete Wert dem Modellierungstyp der Spalte entspricht.
Die Spalten 1 bis 5 enthalten Zahlen und Zeichen. Aus diesem Grund habe ich Char() hinzugefügt.
- Spalte(.) schlägt fehl und die Spaltenformel wird beendet. Überprüfen Sie daher, ob in Spalte 9 Indizes fehlen.
Betreff: Ich möchte einen Wert in einer numerischen Spalte verwenden, um einen Verweis auf dieselbe Spaltennummer zu erstellenHogi
Danke, aber diese geben mir nur den Wert, der bereits in Spalte 9 steht. Ich möchte den Wert einer anderen Spalte nachschlagen, die in Spalte 9 aufgelistet ist, wenn das Sinn ergibt?
Betreff: Ich möchte einen Wert in einer numerischen Spalte verwenden, um einen Verweis auf dieselbe Spaltennummer zu erstellenKombinieren wir beide Ansätze und rufen wir im ersten Schritt die Spalten und im zweiten Schritt die Werte ab:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "column",
Expression,
Formula( Try( Column( Row() ), . ) ),
);
New Column( "value",
Character,
Formula( Try( Char( :column[Row()][Row()] ), "" ) ),
)
why :column[Row()][Row()]?
:Spalte ist Spalte Nr. 9,
:Spalte[Zeile()] ist der Eintrag in der spezifischen Zeile dieser Spalte , zB Spalte ("Geschlecht")
und :Spalte[Zeile()][Zeile()] ist der Eintrag in der spezifischen Zeile von zB Spalte ("sex")

Betreff: Ich möchte einen Wert in einer numerischen Spalte verwenden, um einen Verweis auf dieselbe Spaltennummer zu erstellenHogi
Tolle Ergänzung! Keine gute Tat und so.............
Ich muss jetzt iterativ jede Spalte relativ zum in Spalte 9 gespeicherten Maximalwert bearbeiten. Die normale Addition des Werts von i ist in diesem Fall natürlich nicht anwendbar.
clear symbols();
lim = Col Max(Column(8));
For (i=1, i<=lim, i++,
New Column( "Column 10b",
Character,
Formula( Try( Char( Column( :Column 9 )[Row()] ) ) )
));
Betreff: Ich möchte einen Wert in einer numerischen Spalte verwenden, um einen Verweis auf dieselbe Spaltennummer zu erstellen
@SpannerHead schrieb:
Die normale Addition des Wertes von i ist in diesem Fall natürlich nicht anwendbar.
Ein sehr häufiges Problem:
eine Variable, die außerhalb der neuen Spaltennachricht definiert und innerhalb der neuen Spaltennachricht verwendet wird:
-> Ausdrucksbehandlung in JMP: Tipps und Falltüren
Die Lösung: Suchen Sie die Variable und verwenden Sie den gespeicherten Wert:
For each ({i}, 1::5,
Eval(Eval Expr(New Column( "col_"||char(i),
Character,
Formula( Try( Char( Column( Expr(i) )[Row()] ) ) )
))));
robuster:
For each ({i}, 1::5,
Eval(Eval Expr(New Column( "col_"||char(i),
Character,
Formula( Try( Char( Expr(Name Expr(As Column( i )) )) ) )
))));
Vom ersten Tag an, als ich es in einem der Posts von @jthi sah, bewunderte ich den Name Expr(As Column(col)) und verwendete ihn, wo immer ich konnte.
Dank der Erkenntnisse aus https://community.jmp.com/t5/Discussions/Using-numeric-objects-in-a-column-equation/mp/903966/highlight/true#M106273 bin ich wirklich froh, dass mir dieser Ansatz geholfen hat, viele Fallstricke zu vermeiden.
Als Column(col) oder Spalte (col) in einer Spaltenformel? Zu fragil!