Articles of plyr

ddply per sum per gruppo in R

Ho un campione di dati “dati” come segue: XY Month Year income 2281205 228120 3 2011 1000 2281212 228121 9 2010 1100 2281213 228121 12 2010 900 2281214 228121 3 2011 9000 2281222 228122 6 2010 1111 2281223 228122 9 2010 3000 2281224 228122 12 2010 1889 2281225 228122 3 2011 778 2281243 228124 12 […]

Difficoltà nel convertire una lunga lista di data.frames (~ 1 milione) in single data.frame usando do.call e ldply

So che ci sono molte domande qui in SO su come convertire un elenco di data.frames in un singolo data.frame usando do.call o ldply, ma queste domande riguardano la comprensione del funzionamento interno di entrambi i metodi e il tentativo di capire perché Non riesco neanche a lavorare per concatenare una lista di quasi 1 […]

Può `ddply` (o simile) fare una finestra scorrevole?

Qualcosa di simile a sliding = function(df, n, f) ldply(1:(nrow(df) – n + 1), function(k) f(df[k:(k + n – 1), ]) ) Quello sarebbe usato come > df na 1 1 0.8021891 2 2 0.9446330 … > sliding(df, 2, function(df) with(df, + data.frame(n = n[1], a = a[1], b = sum(n – a)) + )) […]

Somma di righe in base al valore della colonna

Voglio sumre le righe che hanno lo stesso valore in una colonna: > df df X1 X2 X3 1 a 1 3 2 b 5 3 3 a 3 4 4 c 6 5 5 c 2 2 Per una colonna (X2), i dati possono essere aggregati per ottenere le somme di tutte le righe […]

R usa ddply o aggregate

Ho un frame di dati con 3 colonne: custId, saleDate, DelivDateTime. > head(events22) custId saleDate DelivDate 1 280356593 2012-11-14 14:04:59 11/14/12 17:29 2 280367076 2012-11-14 17:04:44 11/14/12 20:48 3 280380097 2012-11-14 17:38:34 11/14/12 20:45 4 280380095 2012-11-14 20:45:44 11/14/12 23:59 5 280380095 2012-11-14 20:31:39 11/14/12 23:49 6 280380095 2012-11-14 19:58:32 11/15/12 00:10 Ecco il dput: […]

Tornando alla prima riga del gruppo

Ho un dataframe costituito da un ID , che è lo stesso per ogni elemento in un gruppo, due datetimes e l’intervallo di tempo tra questi due. Uno degli oggetti datetime è il mio indicatore temporale pertinente. Ora mi piace ottenere un sottoinsieme del dataframe costituito dalla prima voce per ogni gruppo. Le voci (in […]

modo più veloce per creare una variabile che aggrega una colonna per id

C’è un modo più veloce per farlo? Immagino che questo non sia necessario lento e che un compito come questo può essere realizzato con le funzioni di base. df <- ddply(df, "id", function(x) cbind(x, perc.total = sum(x$cand.perc))) Sono abbastanza nuovo per R. Ho guardato by() , aggregate() e tapply() , ma non ho potuto farli […]

R: Dividi l’elenco sbilanciato nella colonna data.frame

Supponiamo di avere un frame dati con la seguente struttura: df <- data.frame(a=c(1,2,3,4), b=c("job1;job2", "job1a", "job4;job5;job6", "job9;job10;job11")) dove la colonna b è un elenco delimitato da punto e virgola (non bilanciato dalla riga). Il data.frame ideale sarebbe: id,job,jobNum 1,job1,1 1,job2,2 … 3,job6,3 4,job9,1 4,job10,2 4,job11,3 Ho una soluzione parziale che richiede quasi 2 ore (170K […]

Errore non trovato nell’object con ddply all’interno di una funzione

Questo ha davvero sfidato la mia capacità di eseguire il debug del codice R. Voglio usare ddply() per applicare le stesse funzioni a diverse colonne che vengono denominate in modo sequenziale; per esempio. a, b, c. Per fare questo, intendo passare ripetutamente il nome della colonna come una stringa e utilizzare eval(parse(text=ColName)) per consentire alla […]

Crea colonne da fattori e conta

Un problema apparentemente facile mi sta tenendo molto impegnato. Ho un frame di dati: > df1 Name Score 1 Ben 1 2 Ben 2 3 John 1 4 John 2 5 John 3 Vorrei creare un riassunto della tabella in questo modo: > df2 Name Score_1 Score_2 Score_3 1 Ben 1 1 0 2 John […]