r dplyr group_by 值折叠和粘贴

标签 r group-by dplyr collapse

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

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

我想做两件事,

1) 按 Vitals 分组。
2) 计算特定日期为每个 ID 测量的 Vitals 数 (ID + Date)并折叠并粘贴这些值,如下所示。
Vitals      Series
HeartRate   2,1,1
BP-Arterial 1,1,1,1
PulseRate   1,1,1 
HeartRate 系列列下的值是 2, 1, 1因为心率被测量

2001-05-29 ID 10 两次,

2005 年 8 月 15 日为 ID 34 和

2004-09-24 ID 10 一次

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

最佳答案

Count the number of Vitals that were measured for each ID on a specific date (ID + Date)



这意味着您需要按所有三个分组。然后我们可以仅通过最后崩溃的生命体来重新组合:
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

关于r dplyr group_by 值折叠和粘贴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40143046/

相关文章:

python - 如何重组 R 中由 8 个重复行和 24 列组成的数据?

MySQL - 返回单行中未确定的列数,与公共(public)键相关

R:使用 d*ply 的多个 ggplot2 绘图

sql-server - 如何在选择查询中不选择第三行

sql - 两列上的 group by 索引

r - 使用 dplyr 添加多列并根据条件填充单元格

RSelenium:从 Google 搜索中单击 for 循环中的后续链接

r - 控制 ggplot 图例中的线型、颜色和标签

r - R中神经网络的算法在给定的重复次数中不收敛

用 NA 对因子数据框进行 R 分割