如果不重复,如何提取第二次出现的重复主题ID或第一次出现?

如果该行不重复,我希望提取第二次出现的主题 ID(他们的数据的整行) 第一次出现。

这些数据来自重复访问,我们只对最后非缺失数据中的受试者感兴趣,这意味着该受试者要么具有“筛选”信息而没有“注射”信息,要么两者都有。这就是我们定义“基线”的方式。如果受兼备,我们希望保留数据的行与注射(最后一个数据处理前),如果只筛选,然后筛选(这是再处理最后的数据前,将等于基准)。

这是一些数据

df1 <- data.frame(ID = c(1, 2, 2, 3, 3, 4),
                  visit = c('screening', 'screening', 'injection', 'screening', 
'injection', 'screening'),
                  var2 = c(1, 6, 3, 12, 0, 2))

我尝试过的:

  • 分离并重新合并包含这些主题的两个限定符的数据帧。但是当我这样做时,这些列就会被复制,产生一个宽而不是长的数据集(当它们显然匹配完全相同的 ID 时)。
  • 在具有多个条件的 dplyr 中使用过滤器,但它只捕获那些具有筛选的过滤器,因为对于重复的主题,这总是首先出现的。

建议?

回答

slice_tail()

library(dplyr, warn.conflicts = F)
df1 %>%
  group_by(ID) %>%
  slice_tail()

#> # A tibble: 4 x 3
#> # Groups:   ID [4]
#>      ID visit      var2
#>   <dbl> <chr>     <dbl>
#> 1     1 screening     1
#> 2     2 injection     3
#> 3     3 injection     0
#> 4     4 screening     2

由reprex 包( v2.0.0 )于 2021 年 7 月 23 日创建

  • 简明回答!伟大的!

以上是如果不重复,如何提取第二次出现的重复主题ID或第一次出现?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>