【问题标题】:Cross tabs/frequency tables with long-form longitudinal data in RR中具有长格式纵向数据的交叉表/频率表
【发布时间】:2020-02-12 14:06:34
【问题描述】:

我有一个纵向数据集,其中包含长格式数据(每个参与者的每个时间点一行),我想在每个时间点获取人口统计变量的交叉表。简化,假设我想要一个表格,其中包含 3 个时间点(“时间”变量)中每个时间点(“时间”变量)的特定性别(行)和种族(列)的参与者数量。

类似这样的:

Time = 1

        White    Black  Total
Male    10       11
Female  9        12
total   19       23     42

还有一个样本数据集:

Participant Time Race Sex
1           1    White Male 
1           2    NA    NA 
1           3    White Male 
2           2    Black Male
2           3    Black Male
2           NA   NA    NA
3           1    Black Female    
3           NA   NA    NA
3           NA   NA    NA

我可以通过每个波对数据集进行子集化来单独执行此操作,但如果可能的话,我无法弄清楚如何一起/一次完成所有操作,而不必将数据子集化到新的数据集中。理想情况下,它还包括每个单元格中的百分比和总样本量。

谢谢!

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    你可以使用tidyverse:

    df <- tribble(~Participant, ~Time, ~Race, ~Sex,
                  1,           1,    "White", "Male", 
                  1,           2,    NA,      NA, 
                  1,           3,    "White", "Male", 
                  2,           2,    "Black", "Male",
                  2,           3,    "Black", "Male",
                  2,           NA,   NA,      NA,
                  3,           1,    "Black", "Female",    
                  3,           NA,   NA,      NA,
                  3,           NA,   NA,      NA)
    
    df %>% 
      group_by(Time, Race, Sex) %>% 
      summarise(count = n()) %>% 
      ungroup() %>% 
      spread(Race, count)
    
    # # A tibble: 6 x 5
    #    Time Sex    Black White `<NA>`
    #   <dbl> <chr>  <int> <int>  <int>
    # 1     1 Female     1    NA     NA
    # 2     1 Male      NA     1     NA
    # 3     2 Male       1    NA     NA
    # 4     2 NA        NA    NA      1
    # 5     3 Male       1     1     NA
    # 6    NA NA        NA    NA      3
    

    如果你想使用基础 R:

    df_list <- split(df, df$time)
    lapply(df_list, function(x) table(x$race, x$sex))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-01
      • 2017-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      相关资源
      最近更新 更多