Suchen Sie nach einer Spalte, deren Name eine Zeichenfolge aus einer anderen Spalte benötigtIch versuche, einen Wert aus einer Spalte mit dem Namen „Freq“ zu verwenden und eine andere Spalte zu finden. Ich erhalte die Fehlermeldung „Ungültige Zeile“
Die gesuchte Spalte ist verfügbar. Die Spalte Freq ist numerisch. Ist das das Problem?
Wenn beispielsweise in einer Zeile der Spalte „Freq“ der Wert 200 ist, suche ich nach dem Wert in IDynatTsense__200__65.
Code:
HashFreqval = Spalte ( "Freq" );
IDyn = Spalte ( "IDynatTsense__" ||HashFreqval[]|| "__65" );
Fehler:

Grundlegende Datenanalyse und ModellierungBetreff: Suchen Sie eine Spalte, deren Name eine Zeichenfolge aus einer anderen Spalte benötigtcolumn[] gibt den Wert der aktuellen row() zurück.
Der Standardwert von row() ist 0. Um auf den Wert von Zeile 1 zuzugreifen, passen Sie den Zeiger einfach über row()=1 an;
New Table( "test",
Add Rows( 1 ),
New Column( "Freq",
Character,
Set Values( {"200"} )
),
New Column( "IDynatTsense__200__65",
Set Values( [20] )
)
);
HashFreqval = Column( "Freq" );
row()=1;
IDyn = Column( "IDynatTsense__"||HashFreqval[]|| "__65" );Betreff: Suchen Sie eine Spalte, deren Name eine Zeichenfolge aus einer anderen Spalte benötigtDer Fehler wird durch das verursacht, was Hogi geschrieben hat: column()[] (dasselbe wie column()[row()]) sucht nach einem Wert der aktuellen Zeile, der in JMP standardmäßig 0 ist, was eine ungültige Zeilennummer ist (Sie können mehr darüber unter „Iterate on Rows in a Table (jmp.com)“ lesen).
Wie verwenden Sie diesen Code? Höchstwahrscheinlich ist dies nicht der gesamte Code, den Sie verwenden? Sie suchen nach einem Wert aus „Freq“, aber aus welcher Zeile, und führen Sie diese möglicherweise in einer Schleife aus? Versuchen Sie, einen Wert aus IDynatTsense__200__65 (welche Zeile?) abzurufen, oder nur die Referenz?
Betreff: Suchen Sie eine Spalte, deren Name eine Zeichenfolge aus einer anderen Spalte benötigtVielleicht ist meine Frage nicht ganz klar. Ich füge ein einfaches Beispiel bei
Abhängig vom Wert in der Spalte HashFreq muss ich Daten entweder aus der Spalte Idyn_ 200 _65 oder Idyn_ 400 _65 auswählen.
Sobald ich diese Daten habe, kann ich eine Formel für weitere Berechnungen verwenden.
Names Default To Here( 1 );
dt1 = Open( "TestDataJunk.jmp" );
HashFreqval = Column( "HashFreq" );
IDyn = Column( "IDynatTsense__"||HashFreqval[]|| "__65" );
dt1 << New Column( "NewVal", Numeric, Continuous, Formula( IDyn[] ));
Vielen Dank für Ihre Hilfe!
Betreff: Suchen Sie eine Spalte, deren Name eine Zeichenfolge aus einer anderen Spalte benötigtWenn Ihre Daten viel komplizierter sind und Sie keine Formel benötigen, würde ich höchstwahrscheinlich einfach For Each Row verwenden.
Names Default To Here(1);
dt = Open("$DOWNLOADS/TestDataJunk.jmp");
dt << New Column("NewVal2", Numeric, Continuous);
For Each Row(dt,
val = Column(dt, "HashFreq")[Row()];
val_col = Eval Insert("Idyn_^val^_65");
Column(dt, "NewVal2")[Row()] = Column(dt, val_col)[Row()];
);