【发布时间】:2019-09-26 17:42:37
【问题描述】:
假设我有一个收集所有医疗咨询的数据集。由于我有一些时间间隔,我将测量 1,2,...,n。
现在我想将在第一个测量点(基线)获得的结果与下一个结果进行比较。如果第二,第三,第四(等)测量差异小于0.5,这个结果是可以的;但是如果没有差异,结果就不行了。
当我们拥有宽格式的数据集时,这是一个简单的操作,但我在 dplyr 框架中使用长格式。
我的数据集如下所示:
我认为这个方向的事情可能没问题,但我收到了一些错误消息..
ds <- ds %>%
group_by(id) %>%
mutate(
improvement =
case_when(result[time != "Baseline"] - result[time == "Baseline"] <= 0.5 ~ 1)
)
重现分析:
ds <- structure(list(id = c(1, 1, 1, 2, 2, 2, 3, 3, 3, 4,
4, 4, 5, 5, 5, 6, 6, 6), group = c("AG", "AG", "AG",
"AG", "AG", "AG", "AG", "AG", "AG", "BG", "BG", "BG", "BG", "BG",
"BG", "BG", "BG", "BG"), time = structure(c(1L, 2L, 3L, 1L, 2L,
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), .Label = c("Baseline",
"Post-intervention", "3-month follow-up"), class = "factor"),
result = c(1.2, 0.2, 0.2, 0.7, 0.2, 0.2, 1, 0.2, 0.2, 0.7,
0.9, 0.5, 1, 0.6, 0.2, 3.3, 0.2, 0.2)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -18L))
d
【问题讨论】: