Hi @artfer93,
# Load library
library("tidyverse")
# Create some data
d <- tibble(id = str_c("id_",
seq(from = 1, to = 100)),
sex = sample(x = c("female", "male"),
size = 100,
replace = TRUE),
var_1 = rnorm(100))
Yielding:
> d
# A tibble: 100 x 3
id sex var_1
<chr> <chr> <dbl>
1 id_1 male 1.50
2 id_2 male -0.514
3 id_3 male -0.878
4 id_4 male 1.30
5 id_5 female -0.212
6 id_6 male -0.878
7 id_7 female -0.291
8 id_8 male -1.13
9 id_9 female 0.786
10 id_10 female -1.19
# … with 90 more rows
Now, split sex
into two columns
d_sex_split <- d %>%
pivot_wider(id_cols = id,
names_from = sex,
values_from = var_1)
yielding:
> d_sex_split
# A tibble: 100 x 3
id male female
<chr> <dbl> <dbl>
1 id_1 1.50 NA
2 id_2 -0.514 NA
3 id_3 -0.878 NA
4 id_4 1.30 NA
5 id_5 NA -0.212
6 id_6 -0.878 NA
7 id_7 NA -0.291
8 id_8 -1.13 NA
9 id_9 NA 0.786
10 id_10 NA -1.19
# … with 90 more rows
Hope it helps 