【发布时间】:2020-10-26 16:41:29
【问题描述】:
希望您能帮助解决我认为是 dplyr/tidyr 的问题:
问题 一旦进行了第一次感兴趣的观察,我如何有条件地删除以下观察? (右删失)
数据
structure(list(record_id = c(120321, 120321, 120321, 120321,
120321, 120321, 120321, 120321, 120321, 120321, 120321, 120321,
120321, 120321, 120321, 120321, 120321, 120321, 120321, 120321,
120321), day_count = c(579, 580, 581, 582, 583, 584, 585, 586,
587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599
), day_count_stop = c(580, 581, 582, 583, 584, 585, 586, 587,
588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600
), te_yn = c(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0)), row.names = c(NA, -21L), groups = structure(list(
record_id = 120321, .rows = structure(list(1:21), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = c(NA, -1L), class = c("tbl_df",
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
解释
所以我实际上从第 0 天到第 732 天跟踪了 record_id 120321。在此示例中,您看到从第 579 天到第 600 天的跟踪天数。
我想在 te_yn 变为 1 之后删除所有行。这是感兴趣的观察。所以在第 584 天,te_yn 变成了 1。我想删除第 585 天直到结束。
最好的祝福
这是一个更大的生存分析问题的一部分。如果有 Cox PH 分析经验并愿意提供帮助,请查看以下链接: Coding help for Cox PH analysis with a categorical time-dependent variable
【问题讨论】:
-
slice(data, 1:which(.$te_yn==1))?但是,您似乎有几个“感兴趣的观察”,并且只会选择第一个。 -
嗨杜布凯。从第一次感兴趣的观察开始切片正是我想要的!但是,当我使用以下代码进行切片
dataframe <- dataframe %>% slice(data, 1:which(. $te_yn==1))时,我收到以下错误:“错误:slice()表达式应返回索引(正整数或负整数)。”怎么了?