Sto provando a calcolare un valore mediano su un numero di colonne, tuttavia i miei dati sono un po 'funky. Sembra il seguente esempio.calcola la mediana dalle colonne data.table in R
library(data.table)
dt <- data.table("ID" = c(1,2,3,4),"none" = c(0,5,5,3),
"ten" = c(3,2,5,4),"twenty" = c(0,2,3,1))
ID none ten twenty
1: 1 0 3 0
2: 2 5 2 2
3: 3 5 5 3
4: 4 3 4 1
Nella tabella in colonna rappresenta il numero di occorrenze di tale valore. Sto volendo calcolare l'occorrenza mediana.
Per esempio per ID = 1
median(c(10, 10, 10))
è il calcolo Sono voler creare.
per ID = 2
median(c(0, 0, 0, 0, 0, 10, 10, 20, 20))
Ho provato con rep()
e lapply()
con un successo molto limitato e sono dopo qualche indicazioni chiare su come questo possa essere raggiunto. Capisco per il Mi piace di rep()
Sarebbe dover codice rigido il mio valore da ripetere (ad esempio rep(0,2)
o rep(10,2)
) e questo è quello che mi aspetto. Sto solo cercando di creare un elenco o un vettore con le ripetizioni di ogni colonna.
Il codice per creare il 'dt' nell'esempio non corrisponde alla descrizione del problema. È solo un refuso ma inizialmente mi ha confuso perché tutte le risposte differiscono dal risultato atteso. Per ID = 2 i numeri per "" none "' e '" twenty "' sono scambiati. Con il tuo codice otterrai ID = 2 'mediano (0,0,0,0,0,10,10,20,20)'. – Uwe
@Uwe Ok, buona cattura. Ho provato a sistemarlo, in modo che la roba visualizzata corrisponda all'ingresso dell'esempio. Dubito che l'OP si preoccupi delle modifiche se ci sono problemi; possono sempre farli rotolare indietro se ci sbagliamo. – Frank