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 […]
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 […]
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)) + )) […]
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 […]
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: […]
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 […]
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 […]
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 […]
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 […]
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 […]