Eine Reihe von Spalten mit einer Schleife neu codierenHallo,
Ich erhalte häufig Multi-Punch-Daten, die in separate Spalten "aufgelöst" werden, wobei eine positive Antwort für Option 1 = 1, Option 2 = 2 usw. angezeigt wird. Ich muss diese in binär umcodieren, und ich möchte dies in einem reproduzierbaren Skript haben. Ich denke, dass ich mit dem folgenden Skript auf dem richtigen Weg bin, aber ich erhalte den Fehler "object nicht subscriptable {1} beim Zugriff oder bei der Auswertung von" Subscript "", wenn ich es ausführen. Ich habe einen Beispieldatensatz angehängt. Danke im Voraus.
dt = Current Data Table();
lstColNames = {"14_1","14_2","14_3","14_4","14_5","14_6","14_7","14_8","14_9","14_10","14_11","14_12","14_13"};
For Each Row( For( i = 1, i <= N Items( lstColNames ), i++, If( lstColNames[i][]== i, lstColNames[i][] = 1 ) ) );
Re: Eine Reihe von Spalten mit einer Schleife neu codierenVielen Dank! Ich konnte damit ein reproduzierbares Skript für meine Projekte erstellen. Ich schätze den Assist!
Re: Eine Reihe von Spalten mit einer Schleife neu codierenFor( i = 1, i <= 13, i++,
Reduzieren Sie einfach die For () - Schleife
Re: Eine Reihe von Spalten mit einer Schleife neu codierenDanke, TX, das funktioniert für die Probe, die ich perfekt gepostet habe. Wie kann ich dies auf die Spalten 14_1 bis 14_13 beschränken, wenn sich diese in einem größeren Datensatz befinden, das viel mehr Spalten enthalten würde? Deshalb habe ich versucht, eine bestimmte Liste zu verwenden.
Re: Eine Reihe von Spalten mit einer Schleife neu codierenSehen Sie, ob Sie das wollen
Names Default To Here( 1 );
dt = Current Data Table();
lstColNames = dt << get column names( string, nominal );
For( i = 1, i <= N Items( lstColNames ), i++,
theRows = dt << get rows where( As Column( dt, lstColNames[i] ) >= 1 );
If( N Rows( theRows ) > 0,
Column( dt, lstColNames[i] )[theRows] = 1
);
theRows = dt << get rows where( Is Missing( As Column( dt, lstColNames[i] ) ) == 1 );
If( N Rows( theRows ) > 0,
Column( dt, lstColNames[i] )[theRows] = 0
);
Column( dt, lstColNames[i] ) << delete property( "Value Labels" );