Wie lösche ich Zeilen, in denen Daten in allen Spalten meines Datensatzes fehlen?Entschuldigung, dass meine Frage so grundlegend ist. Ich fange gerade erst an, JMP zum ersten Mal zu verwenden.
Ich habe einen riesigen Datensatz (14 Spalten x 20.000 Zeilen) und versuche, ein Skript zu schreiben, das alle Zeilen identifiziert und löscht, die für einen bestimmten Spaltenbereich (Spalten 4–14) weder eine 0 noch eine 1 haben. Dieser Datensatz stammt aus einem noch größeren Datensatz, daher gibt es in meinem Teilsatz einige Zeilen, die völlig leer sind. Hier ist ein Beispiel dafür, was ich erreichen wollte:
- - - - -
0 0 1 - 0
- - - - -
1 - - - -
wird:
0 0 1 - 0
1 - - - -
Ich habe angefangen, den Code zu schreiben, aber ich stecke fest – ich bin mir nicht sicher, was ich nach „Für jede Zeile“ tun soll. Ich hatte gehofft, dass dieses Skript jeweils eine Zeile betrachtet und, wenn eine bestimmte Zelle keine 0 oder 1 hat, in der nächsten Spalte nach einer 0 oder einer 1 sucht, und wenn sie am Ende angelangt ist der Zeile ohne Nullen oder Einsen, dann würde die gesamte Zeile gelöscht. Hier ist mein bisheriger Code:
dt=Open("File Name")
colnames = dt << get column names( numeric,string );
For( i = 4, i <= N Items( colnames ), i++,
For Each Row(If(:colnames != 0 | :colnames != 1), Continue()
)
);Ich habe darüber nachgedacht, es zu verwenden
<< Delete Rows
, was ich bei einigen anderen Fragen in diesem Forum gesehen habe. Wenn dies mit einem Skript zu kompliziert ist, gibt es eine bessere Möglichkeit, dies zu tun?
Verbraucher- und MarktforschungDatenmischung und -bereinigungQualitäts- und VerfahrenstechnikBetreff: Wie lösche ich Zeilen, in denen in allen Spalten meines Datensatzes Daten fehlen?Wie aus früheren Antworten hervorgeht, gibt es in JMP oft viele Möglichkeiten, eine Aufgabe auszuführen.
Wenn alle Spalten 4–14 numerisch sind, sollte dieses Skript auch funktionieren, um nur Zeilen mit fehlenden Werten zu löschen.
dt = Current Data Table();
dt << Delete Rows(Loc(Is Missing(V Mean(dt[0, 4 :: 14]`))));
Betreff: Wie lösche ich Zeilen, in denen in allen Spalten meines Datensatzes Daten fehlen?Dieses Skript kümmert sich um Ihre Anfrage. Es ist nicht ganz einzigartig im Vergleich zu den anderen Antworten.
Names Default to Here( 1 );
// get reference to target data table
dt = Current Data Table();
// get all the columns for missing value check
cols = dt << Get Column Names;
// obtain missing value patterns
missing = Current Data Table() << Missing Data Pattern(
Columns( Eval( cols ) ),
Output Table( "Missing Data Pattern" )
);
// make character string representing missing values in all columns
n missing = N Items( cols );
all missing = Repeat( "1", n missing );
// find the row of patterns where all columns are missing.
missing << Select Where( :Patterns == all missing );
// delete the linked rows in the original table
dt << Delete Rows;
// clean up
Close( missing, No Save );
Betreff: Wie lösche ich Zeilen, in denen in allen Spalten meines Datensatzes Daten fehlen?oder wenn Sie ein Skript erstellen möchten, ist dies mein Vorschlag:
dt << New Column("Selected", Character, Nominal, Formula(
If(Is Missing(:Column4) | Is Missing(:Column5)|...until column14,
"Yes",
"No"
)
));
dt << Select Where(:Selected == "Yes");
dt << Delete Rows;Betreff: Wie lösche ich Zeilen, in denen in allen Spalten meines Datensatzes Daten fehlen?Ich denke, Sie müssen sich die Missing Data Pattern-Plattform ansehen:
Tabellen=>Fehlendes Datenmuster
Aus Ihrer Beschreibung geht hervor, dass es Ihren Anforderungen entspricht.Es analysiert die von Ihnen angegebenen Spalten und dann können Sie aus der erstellten Datentabelle die Spalten auswählen, in denen alle Werte fehlen, und sie dann löschen.
Betreff: Wie lösche ich Zeilen, in denen in allen Spalten meines Datensatzes Daten fehlen?Muss das ein Skript sein?
Wenn Sie nur eine Zeile finden, in der diese spezifischen Zellen fehlen, wählen Sie die fehlenden Zellen aus.
Gehen Sie nun zum Menü „Zeilen“ und wählen Sie „Zeilenauswahl“ > „Übereinstimmende Zellen auswählen“.
Jetzt wird jede Zeile ausgewählt, in der Daten in diesen Spalten fehlen. Wählen Sie „Zeilen“ > „Zeilen löschen“.
Betreff: Wie lösche ich Zeilen, in denen in allen Spalten meines Datensatzes Daten fehlen?vielen Dank – eine Sammlung wunderbarer Geheimnisse!
- Datentabellenindizierung
- V Mean() - zum Aggregieren der Informationen über "fehlende" Einträge
- Ort()
- Zeilen löschen (Zeile) **)
**) zusammen mit wobei (dt, fehlt ...)) ist es um Größenordnungen schneller als:
+ wähle wo()