【发布时间】:2021-11-25 02:19:31
【问题描述】:
我有一个数据集,其中包含患者 ID、一个“新”或“相同”的“情节”因子变量,以及一个持续时间变量。数据按 ID 分组并按日期变量排序(日期不在示例数据集中),因此“情节”变量表示该特定患者的“新”情节,或者它表示与该特定患者的“相同”情节排在它上面。我想创建两种不同类型的其他 ID 以及滚动总和。 “ID_2”将是患者内的情节的 ID(即在每个“ID”内)。 “ID_3”将是整个数据集中每一集的唯一 ID。 “sum”变量将是每个唯一剧集中每一行的总“持续时间”的滚动总和。
这段代码创建了我拥有的示例数据集:
ID <- c(1,2,3,3,3,3,3,3,3,4,4,5,6)
episode <- c("new","new","new","same","new","same","same","new","same","new","same","new","new")
duration <- c(10,13,11,2,45,66,2,4,45,33,23,12,16)
data1 <- cbind(ID,episode,duration)
data1 <- data.frame(data1)
data1$ID <- factor(data1$ID)
data1$episode <- factor(data1$episode)
这段代码创建了我希望输出的样子:
ID <- c(1,2,3,3,3,3,3,3,3,4,4,5,6)
episode <- c("new","new","new","same","new","same","same","new","same","new","same","new","new")
duration <- c(10,13,11,2,45,66,2,4,45,33,23,12,16)
ID_2 <- c(1,1,1,1,2,2,2,3,3,1,1,1,1)
ID_3 <- c(1,2,3,3,4,4,4,5,5,6,6,7,8)
sum_roll <- c(10,13,11,13,45,111,113,4,49,33,56,12,16)
data2 <- cbind(ID,episode,duration,ID_2,ID_3,sum_roll)
data2 <- data.frame(data2)
data2$ID <- factor(data2$ID)
data2$episode <- factor(data2$episode)
data2$ID_2 <- factor(data2$ID_2)
data2$ID_3 <- factor(data2$ID_3)
我查看了这个使用滑块求和的link,但我无法弄清楚如何使用指标变量 episode 结合 ID 来实现这一点。我也研究过使用 rleid() 但这似乎不是一个解决方案,因为我正在尝试根据 ID 和情节中的信息创建新 ID。
非常感谢您的帮助!这对我来说似乎是一个非常困难的问题。
【问题讨论】:
标签: r dplyr data.table