r dplyr group_by值折叠和粘贴

bis*_*178 2 group-by r collapse dplyr

我有一个看起来像这样的数据集

Id   Subject    Date        Vitals       Value
10   John       2001-05-29  HeartRate    65
10   John       2001-05-29  HeartRate    68
10   John       2001-05-29  BP-Arterial  48
10   John       2001-05-29  PulseRate    64
34   Pete       2005-08-15  HeartRate    68
34   Pete       2005-08-15  BP-Arterial  56
10   John       2004-09-25  HeartRate    65
10   John       2004-09-25  BP-Arterial  64
10   John       2004-09-25  PulseRate    63   
34   Pete       2007-07-21  BP-Arterial  68
34   Pete       2007-07-21  PulseRate    56
Run Code Online (Sandbox Code Playgroud)

我想做两件事,

1)由Vitals组.2)计算在特定日期为每个ID测量的Vitals数量,(ID + Date)并折叠并粘贴这些值,如下所示.

Vitals      Series
HeartRate   2,1,1
BP-Arterial 1,1,1,1
PulseRate   1,1,1 
Run Code Online (Sandbox Code Playgroud)

Series列下的值HeartRate2, 1, 1因为测量了HeartRate

在2001-05-29两次获得ID 10,

曾在2005-08-15和

曾在2004-09-24获得ID 10

不知道如何使用dplyr折叠和粘贴这些值任何帮助非常感谢.

Gre*_*gor 9

计算在特定日期(ID +日期)为每个ID测量的Vitals数量

这意味着您需要按所有三个分组.然后,我们可以通过最终崩溃的重要组合重组:

dat %>% group_by(Vitals, Id, Date) %>%
    summarize(n = n()) %>%
    ungroup() %>%
    group_by(Vitals) %>%
    summarize(Series = paste(n, collapse = ','))
# # A tibble: 3 × 2
#        Vitals  Series
#        <fctr>   <chr>
# 1 BP-Arterial 1,1,1,1
# 2   HeartRate   2,1,1
# 3   PulseRate   1,1,1
Run Code Online (Sandbox Code Playgroud)