Ho un telaio dati:Spostare AN all'interno dataframe in R
df <- structure(list(a = c(NA, NA, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L), b = c(NA, NA, NA, 1L, 2L, 3L, 4L, 5L, 6L, 7L), d = c(NA, NA, NA, NA, 1L, 2L, 3L, 4L, 5L, 6L)), .Names = c("a", "b", "d"), row.names = c(NA, -10L), class = "data.frame")
> df
a b d
1 NA NA NA
2 NA NA NA
3 1 NA NA
4 2 1 NA
5 3 2 1
6 4 3 2
7 5 4 3
8 6 5 4
9 7 6 5
10 8 7 6
Vorrei muoversi su ogni colonna e spostare le AN alla parte inferiore del telaio dati:
> df.out
a b d
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
6 6 6 6
7 7 7 NA
8 8 NA NA
9 NA NA NA
10 NA NA NA
aggiornamento per rendere più chiare le mie domande ..
df <- structure(list(a = c(NA, NA, 1, 5, 34, 7, 3, 5, 8, 4), b = c(NA,
NA, NA, 57, 2, 7, 9, 5, 12, 100), d = c(NA, NA, NA, NA, 5, 7,
2, 8, 2, 5)), .Names = c("a", "b", "d"), row.names = c(NA, -10L
), class = "data.frame")
> df
a b d
1 NA NA NA
2 NA NA NA
3 1 NA NA
4 5 57 NA
5 34 2 5
6 7 7 7
7 3 9 2
8 5 5 8
9 8 12 2
10 4 100 5
dovrebbe comportare:
Sembra un compito facile ma sono bloccato su dove iniziare .. Potete aiutare?
Si noti che i dati effettivamente modificati qui (guardando dal punto di vista di fila): è che intenzionale, o vuoi semplicemente ordinare gli AN in basso? – PascalVKooten
Questo è di proposito, in pratica voglio che tutti i numeri siano allineati in termini di righe, quindi ogni colonna dovrebbe essere spostata singolarmente. – beetroot
Non riesco a immaginare cosa ti serve, ma ho inviato una risposta. Probabilmente vorrai cercare una soluzione data.table, sono generalmente le più veloci. – PascalVKooten