r - R中是否有一种方法可以对分组数据框的列执行逻辑查询并根据返回的值修改一个数据元素
问题描述
我正在清理一项研究的数据。每个受试者都有一个唯一的研究识别号(studyid)。他们的访问次数从 1 到 3 不等。这是前两列的样子:
> head(x[1:2])
# A tibble: 6 x 2
studyid visit_name
<fct> <chr>
1 3383-002 screening_visit
2 3383-002 medication_visit
3 3383-002 follow-up_visit
4 3383-007 screening_visit
5 3383-008 medication_visit
6 3383-009 medication_visit
如果该个体主题存在,我想将screening_visit指定为基线;如果不是,则将药物访问指定为基线,如果不是,则将后续访问指定为基线。
我可以 group_by studyid 并为每个主题获取最多 3 行的组,但我看不到同时对这 3 行执行逻辑查询、返回值然后根据答案修改变量的一个元素的方法.
我可以看到使用 mutate 但它一次只能在一行上工作。我还阅读了有关地图和其他迭代工具的信息,但看不到如何在此处应用它们。请帮我解决或指出可能对我有帮助的阅读方向。
解决方案
这是你要找的吗?
library(tidyverse)
my_df<- data.frame(
stringsAsFactors = FALSE,
studyid = c("3383-002","3383-002",
"3383-002","3383-007","3383-008","3383-009"),
visit_name = c("screening_visit",
"medication_visit","follow-up_visit","screening_visit",
"medication_visit","medication_visit")
)
glimpse(my_df)
#> Rows: 6
#> Columns: 2
#> $ studyid <chr> "3383-002", "3383-002", "3383-002", "3383-007", "3383-00...
#> $ visit_name <chr> "screening_visit", "medication_visit", "follow-up_visit"...
my_df %>%
mutate(visit_name=fct_inorder(visit_name)) %>%
mutate(visit_name_num=as.numeric(visit_name)) %>%
group_by(studyid) %>%
arrange(visit_name_num, .by_group=T) %>%
mutate(baseline=visit_name[1])
#> # A tibble: 6 x 4
#> # Groups: studyid [4]
#> studyid visit_name visit_name_num baseline
#> <chr> <fct> <dbl> <fct>
#> 1 3383-002 screening_visit 1 screening_visit
#> 2 3383-002 medication_visit 2 screening_visit
#> 3 3383-002 follow-up_visit 3 screening_visit
#> 4 3383-007 screening_visit 1 screening_visit
#> 5 3383-008 medication_visit 2 medication_visit
#> 6 3383-009 medication_visit 2 medication_visit
由reprex 包(v0.3.0)于 2020-12-03 创建
推荐阅读
- python - 如何在 selenium python 中解决这个问题?
- regex - 仅包含小写字母的电子邮件地址的正则表达式
- python - 每次我在命令中输入视图时,我都无法弄清楚如何让它不说添加视图到列表中
- asp.net-mvc - Azure devops 管道 - Visual Studio 构建步骤 - 如何预编译 cshtml 视图?
- javascript - 在猫鼬中查询两个日期之间的日期列表的最佳方法
- reactjs - 使用过滤器而不是地图执行循环
- c# - 如何在 Prism 的依赖注入容器中指定构造函数参数?
- c - 二维数组的列比预期的多
- r - 如何在动画期间保留标签、指南针和标题的同时将光线着色器贴图转换为 mp4 视频?
- r - 使用 dplyr 基于多个值的条件格式