У меня есть data.frame, в котором повторяется каждое имя гена и содержит значения для двух условий:
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
Я хочу рассчитать, есть ли увеличение или уменьшение "счета" после лечения и маркировать их как таковые и/или подмножества. Это (псевдокод):
for each unique(gene) do 
   if df[geneRow1,3]-df[geneRow2,3] > 0 then gene is "up"
       else gene is "down"
Это то, что должно выглядеть в конце (последние столбцы необязательны):
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
Я сгребал свой мозг этим, в том числе играл с ddply, и мне не удалось найти решение - пожалуйста, несчастный биолог.
Приветствия.
