Ho una data.frame in cui ciascuna gene viene ripetuto e contiene valori per 2 condizioni:Calcolare la differenza betwen coppie di righe consecutive in un frame di dati - R
df <- data.frame(gene=c("A","A","B","B","C","C"),
condition=c("control","treatment","control","treatment","control","treatment"),
count=c(10, 2, 5, 8, 5, 1),
sd=c(1, 0.2, 0.1, 2, 0.8, 0.1))
gene condition count sd
1 A control 10 1.0
2 A treatment 2 0.2
3 B control 5 0.1
4 B treatment 8 2.0
5 C control 5 0.8
6 C treatment 1 0.1
voglio calcolare se ci è un aumento o una diminuzione del "conteggio" dopo il trattamento e contrassegnali come tali e/o sottoinsiemi. Questo è (pseudo codice):
for each unique(gene) do
if df[geneRow1,3]-df[geneRow2,3] > 0 then gene is "up"
else gene is "down"
Questo quello che dovrebbe essere simile alla fine (le ultime colonne è facoltativo):
up-regulated
gene condition count sd regulation
B control 5 0.1 up
B treatment 8 2.0 up
down-regulated
gene condition count sd regulation
A control 10 1.0 down
A treatment 2 0.2 down
C control 5 0.8 down
C treatment 1 0.1 down
mi sono stati rastrellando il mio cervello con questo, compreso il gioco con ddply, e non ho trovato una soluzione, per favore un biologo sfortunato.
Cheers.
Brillante, ha funzionato! Ho avuto la sensazione che ddply potrebbe essere parte della risposta, ma non credo che mi verrebbe in mente il reg.fun. Saluti. – fridaymeetssunday
@krespim Ed ecco un [benchmark] (http://stackoverflow.com/revisions/11463757/3) di raggruppamento di coppie di righe che confronta plyr a data.table. –