lösche CHAR-Spalten, wenn nur ein einziger Wert vorhanden ist, keine String-VariationIch frage mich, wie ich ein Skript erstellen kann, das alle Spalten überprüft, um zu sehen, ob mindestens zwei verschiedene Werte vorhanden sind, und alle Spalten mit Einzelwerten löscht? Ich habe Tausende von „Feature“-Spalten, alle vom Typ „Zeichen“, aber eine bemerkenswerte Anzahl davon enthält nur einen einzigen Datensatz, d. h. die Verteilungsebene ist 1.
wie erkennt und löscht man Spalten mit 1 Datensatz?
Automatisierung und SkriptingBetreff: CHAR-Spalten löschen, wenn nur ein einziger Wert vorhanden ist, keine ZeichenfolgenvariationHier ist ein einfaches kleines Skript, das alle Zeichenspalten findet und dann vom Ende der Liste zum Anfang geht. Wenn nur ein einziger Wert (ohne Leerzeichen) gefunden wird, wird die Spalte gelöscht.
Names Default To Here( 1 );
dt = Current Data Table();
charCols = dt << get column names( string, character );
For( i = N Items( charCols ), i >= 1, i--,
Summarize( dt, bygroup = by( As Column( charCols[i] ) ) );
If( bygroup[1] == "",
Remove From( bygroup, 1, 1 )
);
If( N Items( bygroup ) <= 1,
dt << delete columns( Column( dt, charCols[i] ) )
);
);
Betreff: CHAR-Spalten löschen, wenn nur ein einziger Wert vorhanden ist, keine ZeichenfolgenvariationÄhnliche Idee wie Jim (verwenden Sie „Summit“, um eindeutige Werte zu übernehmen und entfernen Sie dann fehlende Werte, falls es welche gibt), aber ein etwas anderer Ansatz: Verwenden Sie „Filter Each“, um die zu entfernenden Spalten zu finden und entfernen Sie sie dann alle gleichzeitig, indem Sie „Spalten löschen“ verwenden.
Names Default To Here(1);
dt = Current Data Table();
char_cols = dt << get column names(Character, String);
cols_to_remove = Filter Each({colname}, char_cols,
Summarize(dt, uniq = by(Column(dt, colname)));
Remove From(uniq, Contains(uniq, "")); // to remove missing values from list
N Items(uniq) == 1;
);
dt << Delete Columns(cols_to_remove);Betreff: CHAR-Spalten löschen, wenn nur ein einziger Wert vorhanden ist, keine ZeichenfolgenvariationEine Anmerkung: Sowohl ich als auch Jim entfernen fehlende Werte aus unserer Liste eindeutiger Werte. Abhängig von Ihren Daten/Modellen/Anwendungsfällen möchten (oder müssen) Sie dies möglicherweise als separaten Wert betrachten, also berücksichtigen Sie das. Beide unserer Skripte können das berücksichtigen, ABER sie erfordern kleine Änderungen.