【发布时间】:2018-09-07 14:49:11
【问题描述】:
我正在尝试计算每组个体的所有可能数据对之间的 ht 百分比差异,以及 ht 度量之间的时间差。这是我的数据:
hc1<- data.frame(id= c(1,1,1,2,2,2,3,3),
testoccasion= c(1,2,3,1,2,3,1,2),
ht= c(0.2,0.1,0.8,0.9,1.0,0.5,0.4,0.8),
time= c(5,4,8,5,6,5,2,1))
这是我的代码。
library(dplyr)
a<-hc1 %>%
group_by(id) %>%
arrange(id,testoccasion) %>%
mutate(fd = (ht-lag(ht))/lag(ht)*100) %>%
mutate(t = time-lag(time))
b<-hc1 %>%
group_by(id) %>%
arrange(id,testoccasion) %>%
mutate(fd = (ht-lag(ht,2))/lag(ht,2)*100) %>%
mutate(t = time-lag(time,2))
c<-hc1 %>%
group_by(id) %>%
arrange(id,testoccasion) %>%
mutate(fd = (ht-lag(ht,3))/lag(ht,3)*100) %>%
mutate(t = time-lag(time,3))
diff<-rbind(a,b,c)
diff<-na.omit(diff)
我很好奇如何使这段代码更短。我希望能够找到所有可能的 ht 对之间的差异,对于所有测试场合,其中测试场合的数量在各个 id 之间有所不同。如果我不必像这样迭代地做它会很棒,因为这是我拥有的一个巨大的数据集。谢谢!
【问题讨论】: