Wie erhalte ich Spaltennamen, die bestimmte vom Benutzer angegebene Wörter enthalten?Hallo,
Ich suche Rat bezüglich der Beschaffung von Spalten, die bestimmte Wörter enthalten, die mich interessieren.
Zum Beispiel:
Ich möchte alle Spaltennamen erhalten, die „Number“ in den unten angegebenen Beispieldaten enthalten. Die erwartete zurückgegebene Liste der Spaltennamen sollte {"Flight Number" , "Tail Number"} sein. Allerdings kann ich nichts zurückbekommen. Meine Codes lauten wie folgt:
dt = open("$SAMPLE_DATA/Air Traffic.jmp");
a= "Number";
col=dt<<GET column="" names=""></GET>
Für jede Hilfe oder jeden Rat sind wir sehr dankbar! Dank im Voraus!
Betreff: Wie erhalte ich Spaltennamen, die bestimmte vom Benutzer angegebene Wörter enthalten?Nein. Der Spaltentyp ist Zeichen.
Betreff: Wie erhalte ich Spaltennamen, die bestimmte vom Benutzer angegebene Wörter enthalten?Das unterscheidet sich ziemlich vom ursprünglichen Thread.Ich schlage vor, ein neues Thema zu erstellen.Hat Ihre Schrittspalte einen numerischen Datentyp?
Betreff: Wie erhalte ich Spaltennamen, die bestimmte vom Benutzer angegebene Wörter enthalten?Hallo,
Ich stehe vor einem ähnlichen Problem. Ich muss prüfen, ob die Spalten eine der beiden Zeichenfolgen enthalten, und dann den Spaltenwert durch einen Wert in einer anderen Spalte ersetzen.
Hier ist der Code -
For(i=1,i<= NRows(dt),i++,
if(contains(:step[i],"NA")| contains(:step[i],".") ,
:step[i] = description[i];
)
);
Aber ich erhalte die Fehlermeldung „Argument ist falscher Typ beim Zugriff oder bei der Auswertung von „Enthält““
Was mache ich hier falsch?
Betreff: Wie erhalte ich Spaltennamen, die bestimmte vom Benutzer angegebene Wörter enthalten?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> Nochmals vielen Dank, Ian.
Ihre Lösung funktioniert wie ein Zauber!
Beste grüße,
Val
Betreff: Wie erhalte ich Spaltennamen, die bestimmte vom Benutzer angegebene Wörter enthalten?Sie müssen zwischen einer Liste und der Art der darin enthaltenen Elemente unterscheiden (die im Allgemeinen nicht homogen sein müssen). Der Fehler ist auf die Tatsache zurückzuführen, dass Sie versuchen, die Liste xxx (die zufällig nur Zeichenelemente enthält) in eine Zelle in einer Zeichenspalte einzufügen.
Der beste Weg, dies zu tun, hängt davon ab, was als nächstes in Ihrem Code passiert. Ich vermute, dass Sie „AvaliableColumns“ als Ausdrucksspalte und nicht als Zeichenspalte haben möchten:
dt = Open( "$SAMPLE_DATA/Air Traffic.jmp" );
a = {"Number", "Flight"};
col = dt << get column names( string );
nc = N Items( col );
dt1 = New Table( "Table1" );
c1 = (dt1 << New Column( "SelectedNames", character, set values( a ) )) << get values;
dt1 << New Column( "AvailableColumns", expression );
For( j = 1, j <= N Items( c1 ), j++,
xxx = {};
For( i = 1, i <= nc, i++,
If( Contains( col[i], a[j] ), InsertInto(xxx, col[i]) );
);
Column( dt1, 2 )[j] = xxx;
);
Betreff: Wie erhalte ich Spaltennamen, die bestimmte vom Benutzer angegebene Wörter enthalten?Hallo Ian Ian@JMP ,
Eine Erweiterung zu dem, woran ich zuvor gearbeitet habe:
Unter Verwendung derselben Daten wie in der vorherigen Frage und basierend auf den ausgewählten Wörtern, die ich aus den verfügbaren Spalten in der Datentabelle „Flugverkehr“ haben möchte, erwarte ich eine Ausgabe wie unten gezeigt, wenn die verfügbaren Spalten in den Daten die Wörter in „ enthalten. „SelectedNames“-Spalte in den jeweiligen Zeilen:

Ich erhalte jedoch diese Fehlermeldung im Protokoll und es werden keine korrekten Spaltennamen in die zweite Spalte eingefügt:


Das sind meine Codes. Können Sie mir helfen herauszufinden, was daran falsch ist?
dt = Open( "$SAMPLE_DATA/Air Traffic.jmp" );
a = {"Number", "Flight"};
col = dt << get column names( string );
nc = N Items( col );
dt1 = New Table( "Table1" );
c1 = (dt1 << New Column( "SelectedNames", character, set values( a ) )) << get values;
dt1 << New Column( "AvailableColumns", character );
xxx={};
For( j = 1, j <= N Items( c1 ), j++,
For( i = 1, i <= nc, i++,
If( Contains( col[i], a[j] ),
Insert Into( xxx, col[i] )
);
Column( dt1, 2 )[j] = Eval( xxx );
xxx = {};
);
Betreff: Wie erhalte ich Spaltennamen, die bestimmte vom Benutzer angegebene Wörter enthalten?Danke, Ian!
Genau die Lösung, die ich suche.
Beste grüße,
Val
Betreff: Wie erhalte ich Spaltennamen, die bestimmte vom Benutzer angegebene Wörter enthalten?Denken Sie daran, dass „col“ eine Liste sein wird. Also versuche:
dt = Open( "$SAMPLE_DATA/Air Traffic.jmp" );
a = "Number";
col = dt << get column names( string );
nc = N Items( col );
xxx = {};
For( i = 1, i <= nc, i++,
If( Contains( col[i], a ),
Insert Into( xxx, col[i] )
)
);
Drucken ( xxx ) ;