使用 2 个或更多事件的数据创建新列,因此每个变量只有一行

Create new columns with data of 2 or more events so only one row per variable

我有一个列中多次列出的参与者列表,我希望他们只列出一次。他们都完成了不同次数的事件。如果他们没有重复,我需要一个列,其中包含第一次尝试的日期、第二次尝试的日期等。

 df
  participant  date
1 a            2020-01-02
2 b            2020-09-25
3 c            2020-09-29
4 d            2020-10-07
5 d            2020-10-07
6 d            2020-11-08
7 a            2020-10-12
8 b            2020-10-13

  participant  date1       event1  date2      event2 date3       event3
1 a            2020-01-02    1     2020-10-12  2      NA          NA
2 b            2020-09-25    1     2020-10-13  2      NA          NA
3 c            2020-09-29    1     NA          NA     NA          NA
4 d            2020-10-07    1     2020-11-07  2      2020-10-08  3  

使用这个

library(dplyr)
library(tidyr)

df %>% group_by(participant) %>%
  mutate(event = row_number(),
         d3 = row_number()) %>%
  pivot_wider(id_cols = participant, names_from = d3, values_from = c(date, event))

# A tibble: 4 x 7
# Groups:   participant [4]
  participant date_1     date_2     date_3     event_1 event_2 event_3
  <chr>       <chr>      <chr>      <chr>        <int>   <int>   <int>
1 a           2020-01-02 2020-10-12 NA               1       2      NA
2 b           2020-09-25 2020-10-13 NA               1       2      NA
3 c           2020-09-29 NA         NA               1      NA      NA
4 d           2020-10-07 2020-10-07 2020-11-08       1       2       3