Ho un frame di dati con due colonne. Voglio aggiungere altre due colonne al set di dati con i conteggi basati sugli aggregati.Aggregating in R
df <- structure(list(ID = c(1045937900, 1045937900),
SMS.Type = c("DF1", "WCB14"),
SMS.Date = c("12/02/2015 19:51", "13/02/2015 08:38"),
Reply.Date = c("", "13/02/2015 09:52")
), row.names = 4286:4287, class = "data.frame")
Voglio contare semplicemente il numero di istanze di SMS.Type e Reply.Date dove non c'è nulla. Quindi nell'esempio del giocattolo qui sotto, genererò il 2 per SMS.Type e 1 per Reply.Date
Poi voglio aggiungere questo al frame di dati come conteggi totali (sono consapevole che verranno duplicati per il numero di le righe di dati originale, ma questo è ok)
ho giocato in giro con funzione di aggregazione e contare, ma senza alcun risultato
mytempdf <-aggregate(cbind(testtrain$SMS.Type,testtrain$Response.option)~testtrain$ID,
train,
function(x) length(unique(which(!is.na(x)))))
mytempdf <- aggregate(testtrain$Reply.Date~testtrain$ID,
testtrain,
function(x) length(which(!is.na(x))))
chiunque può aiutare?
Grazie per il vostro tempo
Ciao David, Grazie per avermi fatto conoscere data.table ... Puoi spiegare cosa ogni riga sta facendo da il SetDT in poi se ne hai il tempo. Per rispondere alla tua domanda, stavo usando la lunghezza (unique()) per provare e contare i valori in modo univoco nelle colonne –
Ho aggiunto una spiegazione. –
Grazie mille per la risposta –