【发布时间】:2020-01-09 17:09:03
【问题描述】:
基于下面的 R data.frame,我正在寻找一种优雅的解决方案来计算不同时间组之间转换的人数。
dat <- data.frame(people = c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4),
time = c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5),
group = c(5,4,4,3,2,4,4,3,2,1,5,5,4,4,4,3,3,2,2,1))
我想要一个通用的解决方案,因为我的问题规模要大得多。我正在考虑使用 mutate 的东西可以实现这一点,但我不知道从哪里开始
我正在寻找的输出开头的示例如下:
dat_result <- data.frame(time_start = c(1,1,1,1,1),
time_end = c(2,2,2,2,2),
group_start = c(1,1,1,1,1),
group_end = c(1,2,3,4,5),
count = "")
这将在所有时间转换和所有组转换中重复。时间当然是线性的,所以 1 只能到 2,2 到 3 等等。但是,任何组都可以转换到任何其他组,包括在不同时间之间留在同一组。
【问题讨论】:
标签: r dataframe data-manipulation dplyr