I have been struggling to find the best way to do this subtraction within groups. I have data frame containing a long list of samples (Sample), each one treate
Sample
You can also do that with dplyr:
dplyr
require(dplyr) df %.% group_by(Sample) %.% mutate(dValue = value[condition == "A"] - value) # Sample condition value dValue #1 var1 A 12 0 #2 var1 B 14 -2 #3 var1 C 15 -3 #4 var2 A 20 0 #5 var2 B 19 1 #6 var2 C 19 1 #7 var3 A 50 0 #8 var3 B 51 -1 #9 var3 C 48 2