Fehlende Werte für viele Spalten untersuchenHallo,
Ich schreibe gerne ein Skript, um fehlende Werte zu untersuchen, und wenn ich es ausführe, werden viele Tabellen für jede Spalte generiert. Da ich eine multivariate normale Imputation verwende, müssen alle Spalten gleichzeitig ausgewählt werden. Kannst du mir dabei helfen? Hier ist das Skript, das ich bis jetzt habe.
lstNames = dt << Get Column Names(String,Numeric);
ncols = N items(lstNames);
for (i=1, i <= N items(cols), i++,
obj = Explore Missing Values(
Y(
Column(lstNames[i])
),
Missing Value Report,
SendToReport(
Dispatch( {}, "Missing Columns", OutlineBox, {SetHorizontal( 1 )} )
)
);
Vielen Dank
obj << Multivariate normale Imputation ;
);
Re: Untersuchen Sie Fehlende Werte für viele SpaltenDanke Jim für die schnelle Lösung. Es funktioniert jetzt.
Re: Untersuchen Sie Fehlende Werte für viele SpaltenÄndern Sie die Definition der For-Schleife von "<" in "<=".
Re: Untersuchen Sie Fehlende Werte für viele SpaltenHallo Jim,
Danke für das aktualisierte Skript. Es funktioniert und kein Fehler im Protokoll. Das einzige, was mir aufgefallen ist, ist, dass die letzte Spalte der Tabelle nicht in den fehlenden Werten enthalten ist. Ich habe zwei verschiedene Datentabellen getestet und beide zeigen dasselbe Problem. Gibt es einen Grund dafür?
Ich freue mich über Ihre weitere Hilfe. Vielen Dank
Re: Untersuchen Sie Fehlende Werte für viele SpaltenHoppla, ich habe das falsche Paar von ")" entfernt. Versuche dies:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Semiconductor Capability.jmp" );
lstNames = dt << Get Column Names( string, Numeric );
// Create a string variable of the structure the platform
// wants them passed to it
names = ":" || lstNames[1];
For( i = 2, i < N Items( lstNames ), i++,
names = names || ",:" || lstNames[i]
);
// Execute the following string, with the column names embedded in it
Eval(
Parse(
"obj = Explore Missing Values(
Y( " || names ||
"),
Missing Value Report,
SendToReport( Dispatch( {}, \!"Missing Columns\!", OutlineBox, {SetHorizontal( 1 )} ))) ;"
)
);Re: Untersuchen Sie Fehlende Werte für viele SpaltenHallo Jim,
Danke für das aktualisierte Skript. Es sieht so aus, als ob ich immer noch den gleichen Fehler bekomme.
Unerwartetes ")". Vielleicht fehlt ein ";" oder ",".
Zeile 2 Spalte 4369: ... ABC)) ►), ...
Der restliche Text, der ignoriert wurde, war
), Bericht über fehlende Werte, SendToReport (Dispatch ({} "," Fehlende Spalten, OutlineBox, {
SetHorizontal (1)})));
Fehlende Werte erkunden []
Danke für Ihre weitere Hilfe.
Re: Untersuchen Sie Fehlende Werte für viele SpaltenEs gab 2 ")", die versehentlich im Code belassen wurden ... hier ist eine korrigierte Version
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Semiconductor Capability.jmp" );
lstNames = dt << Get Column Names( string, Numeric );
// Create a string variable of the structure the platform
// wants them passed to it
names = ":" || lstNames[1];
For( i = 2, i < N Items( lstNames ), i++,
names = names || ",:" || lstNames[i]
);
// Execute the following string, with the column names embedded in it
Eval(
Parse(
"obj = Explore Missing Values(
Y( " || names ||
")) ),
Missing Value Report,
SendToReport( Dispatch( {}, \!"Missing Columns\!", OutlineBox, {SetHorizontal( 1 )} ) ;"
)
);Re: Untersuchen Sie Fehlende Werte für viele SpaltenHallo Jim,
Ich habe gerade festgestellt, dass in der Protokolldatei ein Fehler aufgetreten ist:
Unerwartetes ")". Vielleicht fehlt ein ";" oder ",".
Zeile 2 Spalte 789: ...: P2A1,: P2B1,: PM_L1,: P1)) ►), ...
Der restliche Text, der ignoriert wurde, war
), Bericht über fehlende Werte, SendToReport (Dispatch ({} "," Fehlende Spalten, OutlineBox, {
SetHorizontal (1)})));
Fehlende Werte erkunden []
Wissen Sie, was damit zu tun hat? Mir ist aufgefallen, dass es der letzten Spalte, bei der die Wertangabe fehlte, nicht gelingt.
Danke für Ihre Hilfe.
Re: Untersuchen Sie Fehlende Werte für viele SpaltenHallo Jim,
Vielen Dank für die schnelle Rückmeldung und Lösung. Ich habe Ihre Vorschläge ausprobiert und es funktioniert perfekt. Ich fügte hinzu
obj << Multivariate Normal Imputation;
die Imputation zu machen. Danke noch einmal.
Re: Untersuchen Sie Fehlende Werte für viele SpaltenHier ist ein Beispiel für eine Möglichkeit, dieses Problem zu lösen
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Semiconductor Capability.jmp" );
lstNames = dt << Get Column Names( string, Numeric );
// Create a string variable of the structure the platform
// wants them passed to it
names = ":" || lstNames[1];
For( i = 2, i < N Items( lstNames ), i++,
names = names || ",:" || lstNames[i]
);
// Execute the following string, with the column names embedded in it
Eval(
Parse(
"obj = Explore Missing Values(
Y( " || names ||
")) ),
Missing Value Report,
SendToReport( Dispatch( {}, \!"Missing Columns\!", OutlineBox, {SetHorizontal( 1 )} ) ));"
)
);