Wählen Sie Spalten aus, die eine bestimmte Zeichenfolge enthalten, und löschen Sie sieHallo JSL-Leute,
Kann jemand dazu Stellung nehmen, was mit meiner Codierung unten nicht stimmt? Ich versuche, nach Spalten zu suchen, die eine Zeichenfolge namens „Dummy“ enthalten, und versuche, diese zu löschen, aber es funktioniert nicht. Bitte helfen Sie.
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 3 ),
New Column( "A_Dummy", Character, "Nominal", Set Values( {"xx", "yy", "zz"} ) ),
New Column( "B", Character, "Nominal", Set Values( {"a", "b", "c"} ) ),
New Column( "C_Dummy", Character, "Nominal", Set Values( {"l", "m", "n"} ) )
);
cols = dt << get column names( string );
If( Contains( cols, "Dummy" ),
dt << Select Columns();
dt << Delete Columns();
);
Datenmischung und -bereinigungBetreff: Spalten auswählen und löschen, die eine bestimmte Zeichenfolge enthaltenEs klappt ! Danke für die Lösung, Georg!Betreff: Spalten auswählen und löschen, die eine bestimmte Zeichenfolge enthaltenAusgezeichnet, es funktioniert perfekt! Danke !Betreff: Spalten auswählen und löschen, die eine bestimmte Zeichenfolge enthaltenHallo jthi, danke, dass du versucht hast zu helfen. Ich habe festgestellt, dass das Skript tatsächlich alle Spalten löscht, unabhängig davon, ob die Zeichenfolge „Dummy“ vorhanden ist oder nicht. Wie auch immer, Georg und Pauldeen haben bereits die Lösung geliefert.Betreff: Spalten auswählen und löschen, die eine bestimmte Zeichenfolge enthaltenLeichte Änderung, um die Notwendigkeit einer zusätzlichen Listenvariablen zu beseitigen:
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 3 ),
New Column( "A_Dummy", Character, "Nominal", Set Values( {"xx", "yy", "zz"} ) ),
New Column( "B", Character, "Nominal", Set Values( {"a", "b", "c"} ) ),
New Column( "C_Dummy", Character, "Nominal", Set Values( {"l", "m", "n"} ) )
);
cols = dt << get column names( string );
For( i = N Items( cols ), i>=1, i--,
If( Contains( cols[i], "Dummy" ),
dt << Delete Columns( i );
)
);
Betreff: Spalten auswählen und löschen, die eine bestimmte Zeichenfolge enthaltenDies ist eine modifizierte Version, die möglicherweise für Sie funktioniert und leicht zu verstehen ist.
Sie müssten eine Schleife über die Spalten durchlaufen, um zu sehen, wo sich die Zeichenfolge befindet.
und Ihre Verwendung von „Auswählen“ und „Löschen“ war nicht richtig.
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 3 ),
New Column( "A_Dummy", Character, "Nominal", Set Values( {"xx", "yy", "zz"} ) ),
New Column( "B", Character, "Nominal", Set Values( {"a", "b", "c"} ) ),
New Column( "C_Dummy", Character, "Nominal", Set Values( {"l", "m", "n"} ) )
);
cols = dt << get column names( string );
delete_lst = {};
For( i = 1, i <= N Items( cols ), i++,
If( Contains( cols[i], "Dummy" ),
Insert Into( delete_lst, cols[i] )
)
);
dt << Delete Columns( delete_lst );Betreff: Spalten auswählen und löschen, die eine bestimmte Zeichenfolge enthaltenEnthält enthält nur den ersten Index einer Übereinstimmung. Sie können die Liste entweder in einer Schleife durchlaufen, um eine Liste mit zu löschenden Spalten zu erstellen, oder während der Schleife löschen:
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 3 ),
New Column( "A_Dummy", Character, "Nominal", Set Values( {"xx", "yy", "zz"} ) ),
New Column( "B", Character, "Nominal", Set Values( {"a", "b", "c"} ) ),
New Column( "C_Dummy", Character, "Nominal", Set Values( {"l", "m", "n"} ) ));<BR />
cols = dt << get column names( string );
for(i = 1, i <= N Items(cols), i++,
If(Contains(cols[i],"Dummy"),
dt << Delete Columns(cols[i])
);
);Betreff: Spalten auswählen und löschen, die eine bestimmte Zeichenfolge enthaltenNur um es hinzuzufügen ... Der Grund, warum ich das frage, ist, dass ich gerne wissen würde, ob es eine Reihe von Spaltennamen wie zum Beispiel 50 Spalten gibt, die „_Dummy“ enthalten. Wie kann ich sie schnell löschen, ohne sie benennen zu müssen? Spezifische Spaltennamen mithilfe bekannter Befehle zum Löschen von Spalten wie „dt << delete Column(column(„A_Dummy“))“. Wenn ich diesen Befehl verwenden müsste, müsste ich alle eindeutigen Spaltennamen 50 Mal eingeben.