R:如何在数据帧中组合重复项(并排),保留一些变量信息



我有一个具有重复项的数据帧,我想将这些重复对组合在一行中,如下所示:

原始数据帧:my_original_dataframe

id.  name. age.  sex.  weigt. date. 
01   ANA    18    F    56.7   02/27/2020 
02   ANA    18    F    59.5   05/05/2020
03   KARLA  21    F    60.1   08/04/2020
04   KARLA  21    F    60.4   12/30/2020
05   MARIA  30    F    49.9   01/06/2020
06   MARIA  30    F    50.2.  03/07/2020

我想用R做什么:my_dedesired_dataframe

id.  name   age  sex   weigt1 date1       weight2   date2
01   ANA    18    F    56.7   02/27/2020  59.5      05/05/2020
02   KARLA  21    F    60.1   08/04/2020  60.4      12/30/2020
03   MARIA  30    F    49.9   01/06/2020  50.2      03/07/2020

我将非常感谢任何帮助!

以下是tidyr::pivot_wider的方法。请注意,当前的实现并没有按照您期望的顺序进行;您可以手动更改它,使用此处的策略之一,也可以使用自定义pivot_wider_spec()

library(tidyverse)
df1 %>%
group_by(name) %>% mutate(instance = row_number()) %>% ungroup() %>%
select(-id) %>%
pivot_wider(names_from = instance, values_from = c(weight, date), 
names_glue = "{instance}_{.value}",
names_sort = TRUE)

# A tibble: 3 x 7
name    age sex   `1_weight` `2_weight` `1_date`   `2_date`  
<chr> <int> <lgl>      <dbl>      <dbl> <chr>      <chr>     
1 ANA      18 FALSE       56.7       59.5 02/27/2020 05/05/2020
2 KARLA    21 FALSE       60.1       60.4 08/04/2020 12/30/2020
3 MARIA    30 FALSE       49.9       50.2 01/06/2020 03/07/2020

最新更新