Допустим, у меня есть набор данных, по которому собраны все медицинские консультации.Поскольку у меня есть некоторый интервал времени, у меня будет мера 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