how to operate with a subset of an R dataframe in long format?
I have a data frame with 3 groups and 3 days: set.seed(10) dat <- data.frame(group=rep(c("g1","g2","g3"),each=3), day=rep(c(0,2,4),3), value=runif(9)) # group day value # 1 g1 0 0.507478 # 2 g1 2 0.306769 # 3 g1 4 0.426908 # 4 g2 0 0.693102 # 5 g2 2 0.085136 # 6 g2 4 0.225437 # 7 g3 0 0.274531 # 8 g3 2 0.272305 # 9 g3 4 0.615829 I want to take the log2 and divide each value with the day 0 value within each group. The way I'm doing it now is by calculating each day group in an intermediate step: day_0 <- dat[dat$day==0, "value"] day_2 <- dat[dat$day==2, "value"] day_4 <- dat[dat$day==4, "value"