Ricodifica una serie di colonne con un loopCiao,
Ricevo spesso dati multi-punch "esplosi" in colonne separate, dove una risposta positiva per l'opzione 1 = 1, opzione 2 = 2, ecc. Devo ricodificare questi in binario e mi piacerebbe avere questo in uno script riproducibile. Penso di essere sulla strada giusta con il seguente script, ma ottengo l'errore "object not subscriptable {1} in accesso o valutazione di 'Subscript'" quando lo eseguo. Ho allegato un set di dati di esempio. Grazie in anticipo.
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 ) ) );
Ri: Ricodifica una serie di colonne con un loopGrazie! Sono stato in grado di usarlo per creare uno script riproducibile per i miei progetti. Apprezzo l'aiuto!
Ri: Ricodifica una serie di colonne con un loopFor( i = 1, i <= 13, i++,
Basta ridurre il ciclo For ()
Ri: Ricodifica una serie di colonne con un loopGrazie, TX, che funziona per il campione che ho pubblicato perfettamente. Come potrei limitare questo solo alle colonne da 14_1 a 14_13 quando sono in un set di dati più grande che includerebbe molte più colonne? Ecco perché stavo cercando di usare una lista specifica.
Ri: Ricodifica una serie di colonne con un loopVedi se questo è quello che vuoi
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" );