I have this dataframe:
x <- data.frame( name = rep(letters[1:4], each = 2), condition = rep(c("A", "B"), times = 4), value = c(2,10,4,20,8,40,20,100) ) # name condition value # 1 a A 2 # 2 a B 10 # 3 b A 4 # 4 b B 20 # 5 c A 8 # 6 c B 40 # 7 d A 20 # 8 d B 100 I want to group by name and divide the value of rows with condition == "B" with those with condition == "A", to get this:
data.frame( name = letters[1:4], value = c(5,5,5,5) ) # name value # 1 a 5 # 2 b 5 # 3 c 5 # 4 d 5 I know something like this can get me pretty close:
x$value[which(x$condition == "B")]/x$value[which(x$condition == "A")] but I was wondering if there was an easy way to do this with dplyr (My dataframe is a toy example and I got to it by chaining multiple group_by and summarise calls).