【发布时间】:2020-01-25 04:26:42
【问题描述】:
我正在努力解决的一个概念上简单的问题。我有随时间按 ID 分组的观察结果(“值”),并希望将每个观察结果标准化为之前的观察结果。在下面的示例中,我可以将每个“值”标准化为 ID 组中的第一个“时间”观察值(即 10 到 10、20 到 10、30 到 10 等),但我想将每个“值”标准化到前一个观察值(即 20 到 10、30 到 20 等)并且无法使其正常工作。
ID <- c(rep("A", 4), rep("B", 3), rep("C", 3))
Time <- c(10, 20, 30, 40, 10, 20, 30, 10, 20, 30)
Value <- sample(1:100, 10)
dat <- cbind(ID, Time, Value)
newDat <- dat %>%
arrange(Time) %>%
group_by(ID) %>%
mutate(ratio = Value/first(Value))
【问题讨论】:
标签: r dplyr normalization tidyverse plyr