我有一个整洁的数据集,类似于Introducing tidyr blog post中的心率示例,但我在药物下还有一个额外的“安慰剂”组,我可以像这样构建
library(dplyr)
library(tidyr)
messy <- data.frame(
name = c("Wilbur", "Petunia", "Gregory"),
a = c(67, 80, 64),
b = c(56, 90, 50),
p = c(60, 70, 60) # this is the new 'placebo' drug
)
tidy <- messy %>%
gather(drug, heartrate, a:p)
假设我从整洁的数据开始,我的目标是创建一个名为“diff.p”的新变量,它是每种药物的观察结果与安慰剂之间的差异。结果应该是这样的
tidy$diff.p <- c(7,10,4,-4,20,-10,0,0,0)
tidy
看起来ave
和/或mutate
可能是解决方案的好方法(或者可能构建一个新的数据框?),但我需要一些关于最佳实践的额外指导。