【发布时间】:2020-12-09 02:18:50
【问题描述】:
考虑在此处创建的dat:
set.seed(123)
ID = factor(letters[seq(6)])
time = c(100, 102, 120, 105, 109, 130)
dat <- data.frame(ID = rep(ID,time), Time = sequence(time))
dat$group <- rep(c("GroupA","GroupB"), c(322,344))
dat$values <- sample(100, nrow(dat), TRUE)
我们有 6 个个体(6 个 IDs)的时间序列数据,它们属于 2 个组(GroupA 和 GroupB)。我们想要制作一个线图,显示两组的“平均”时间序列(所以会有两条线)。由于个体的长度不同,我们需要做dat%>%group_by(group),并在两组中最短的ID之后剃掉值。换句话说,ID == a 是第 1 组中最短的,因此GroupA 的“平均”线在 x 轴上只有 100 个值;同样ID == d 是GroupB 的最短时间序列,因此GroupB 的“平均”时间序列在x 轴上将是105 个值(time)。
我们如何做到这一点(最好通过dplyr 管道)并将数据发送到ggplot()?
【问题讨论】:
-
@akrun 谢谢我知道你要去哪里,你的回答也很有帮助。当我复制它时错过了创建响应变量的行,这对我不利
标签: r ggplot2 dplyr time-series line-plot