Aggiungi dati dalle colonne precedenti se mancantiCiao,
Sto cercando di creare una colonna con l'ultima data disponibile nel mio set di dati. Quindi, in questo caso, se manca una data dalla visita 19, ottengo la data dalla visita 18. Quello che posso fare. Ma se manca la data della visita 18 non riesco più a farlo funzionare. Quindi, come faccio a far partire jmp in una colonna e tornare indietro fino a quando non c'è una data?
Fr. Julie
Ri: Aggiungi dati da colonne precedenti se mancantiBasta scartare completamente la clausola If (isMissing (se lo si desidera). Non sta realmente cambiando nulla, a condizione che la colonna Data ultima visualizzazione contenga tutti i valori mancanti
Ri: Aggiungi dati da colonne precedenti se mancantiOk - ha senso. Ma l'esecuzione dello script non aggiunge alcun valore alla nuova colonna.
Non dovrei " Manca "punto di riferimento alla colonna 19? O mi sto perdendo qualcosa?
Ri: Aggiungi dati da colonne precedenti se mancantiIl mio errore su i = 5. Ci stavo provando .... L'ho cambiato in i = 1.
Se vuoi una nuova colonna, puoi semplicemente aggiungerla come 20a colonna e utilizzare il secondo script.
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column("Last Date Seen",format("yyyy-mm-dd",12));
For( i = 1, i <= N Rows( dt ), i++,
If( Is Missing( As Column( "Last Date Seen" )[i] ),
Column( "Last Date Seen" )[i] = Max( dt[i, 0] )
)
);Ri: Aggiungi dati da colonne precedenti se mancantiMa non è sufficiente riempire l'ultima colonna con la data più recente invece di creare una nuova colonna?
Inoltre, nel primo esempio, perché è "i = 5" ?
Grazie in anticipo
Ri: Aggiungi dati da colonne precedenti se mancantiEcco 2 modi per farlo
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 1, i <= N Cols( dt ), i++,
missingRows = dt << get rows where( Is Missing( As Column( i ) ) );
If( N Rows( missingRows ) > 0,
For( k = 1, k <= N Rows( missingRows ), k++,
Column( i )[missingRows[k]] = Column( i - 1 )[missingRows[k]]
)
);
);
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 1, i <= N Rows( dt ), i++,
If( Is Missing( As Column( 19 )[i] ),
Column( 19 )[i] = Max( dt[i, 0] )
)
);
Ri: Aggiungi dati da colonne precedenti se mancantiSe inizi a ripetere l'iterazione dalla prima riga, dovresti essere in grado di inserire una data mancante con la data precedente durante l'iterazione nella tabella. Mi sembra abbastanza semplice ma potrei aver perso un punto importante.