Set up Kale data

kale = data.frame(patient =paste0("patient",1:20),
                  baseline=rnorm(20),
                  time1   = rnorm(20),
                  time2   = rnorm(20),
                  time3   = rnorm(20))
head(kale,3)
##    patient   baseline      time1      time2       time3
## 1 patient1 -0.1053750 -1.1182440 -1.2896359  0.80818794
## 2 patient2  1.4671459 -0.6017518 -0.7623993 -1.55632731
## 3 patient3  0.3474804 -0.7315043  1.2228622 -0.03752189

Creating new columns

Using standard R

kale2 = kale[,2:5] - kale[,2]
colnames(kale2) = paste0(colnames(kale)[2:5],'_rel')
kaleStandard = cbind(kale,kale2)
head(kaleStandard,3)
##    patient   baseline      time1      time2       time3 baseline_rel
## 1 patient1 -0.1053750 -1.1182440 -1.2896359  0.80818794            0
## 2 patient2  1.4671459 -0.6017518 -0.7623993 -1.55632731            0
## 3 patient3  0.3474804 -0.7315043  1.2228622 -0.03752189            0
##   time1_rel  time2_rel  time3_rel
## 1 -1.012869 -1.1842610  0.9135629
## 2 -2.068898 -2.2295451 -3.0234732
## 3 -1.078985  0.8753818 -0.3850023

Using dplyr

library(dplyr)
## 
## Attaching package: 'dplyr'
## 
## The following object is masked from 'package:stats':
## 
##     filter
## 
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
kaleDplyr = mutate(kale,
                   baseline_rel = baseline-baseline,
                   time1_rel = time1 - baseline,
                   time2_rel = time2 - baseline,
                   time3_rel = time3 - baseline)
head(kaleDplyr,3)
##    patient   baseline      time1      time2       time3 baseline_rel
## 1 patient1 -0.1053750 -1.1182440 -1.2896359  0.80818794            0
## 2 patient2  1.4671459 -0.6017518 -0.7623993 -1.55632731            0
## 3 patient3  0.3474804 -0.7315043  1.2228622 -0.03752189            0
##   time1_rel  time2_rel  time3_rel
## 1 -1.012869 -1.1842610  0.9135629
## 2 -2.068898 -2.2295451 -3.0234732
## 3 -1.078985  0.8753818 -0.3850023

check for equality

all.equal(kaleStandard,kaleDplyr)
## [1] TRUE