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,但一次只能使用一行。我还阅读了有关地图和其他迭代工具的信息,但看不到如何在这里应用它们。请帮助我解决或指出可能对我有帮助的阅读方向。

评论