Einfache Aufgabe: Leere Spalten entfernen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo SAS-Forum,
Ich versuche, alle leeren Spalten in einem Datensatz zu entfernen, kann aber nicht herausfinden, wie das in JMP9 geht. Kannst du helfen? Die Anzahl der Patienten und AAs wird unterschiedlich sein
Dateneingabe
| Geduldig | Probe
| AA_1 | AA_2 | AA_3 | AA_4 | AA_5 | AA_6 |
|---|
| 2234 | Tag 1 | | A | | | | C |
| 2234 | Tag 11 | | A | | V/M/S | | C |
| 2234 | Tag 21 | | A | | | | C |
| 2234 | Tag 24 | | A | | | S/T | C |
Ausgabe
| Geduldig | Probe
| AA_2 | AA_4 | AA_5 | AA_6 |
|---|
| 2234 | Tag 1 | A | | | C |
| 2234 | Tag 11 | A | V/M/S | | C |
| 2234 | Tag 21 | A | | | C |
| 2234 | Tag 24 | A | | S/T | C |
Betreff: Einfache Aufgabe – leere Spalten entfernenWenn Sie die Liste sehen möchten, können Sie einfach Folgendes verwenden:
Drucken( lstDelete);
Betreff: Einfache Aufgabe – leere Spalten entfernenDanke schön. Ich habe dies ausgeführt, aber die Liste nicht gesehen. Habe ich etwas übersehen?
Betreff: Einfache Aufgabe – leere Spalten entfernenHallo,
Wenn Sie den leeren Spaltennamen in der Liste behalten möchten, können Sie auch so vorgehen.
dt = Aktuelle Datentabelle();
iColMax = NCol(dt);
iRowMax = NRow(dt);
null = 0;
lstDelete = List();
Für (iCol = 1, iCol<=iColMax, iCol++,
null = 0;
col = Column(iCol);
strColName = Column(iCol) << GetName;
Für (iRow = 1, iRow<=iRowMax, iRow++,
If (Or(IsEmpty(col[iRow]),IsMissing(col[iRow])),
null = null + 1;
);
);
If (null == iRowMax, InsertInto(lstDelete, Eval(strColName))
);
);
dt << Spalten löschen(lstDelete);
Betreff: Einfache Aufgabe – leere Spalten entfernenFunktioniert wunderbar! Vielen Dank.
Betreff: Einfache Aufgabe – leere Spalten entfernenWenn ich dies interaktiv in JMP mache, neige ich dazu, fehlende Datenmuster und Zusammenfassungen zu verwenden. Aber für große Tabellen und sich wiederholende Aufgaben ist JSL-Skript effektiver.
Dies sollte zum Entfernen leerer Spalten eines beliebigen Datentyps funktionieren.
dt = Aktuelle Datentabelle () ;
nc = N Col ( dt ) ;
Namen = dt << Spaltennamen abrufen () ;
dt1 = dt << Fehlendes Datenmuster ( Säulen ( Bewertung ( Namen ) ) , unsichtbar ) ;
Nr = N-Reihe ( dt1 ) ;
Für ( ich = nc , ich >= 1 , ich --,
Wenn ( Col Summe ( Spalte ( dt1 , ich + 3 ) ) < Nr ,
Entfernen von ( Namen , ich )
)
) ;
Versuchen ( dt << Spalten löschen ( Namen ) ) ;
Schließen ( dt1 , nosave ) ;