I would like to reshape my long dataframe into wide format with tidyverse::spread. What should I do to include all the variables for transformation.
My input:
df <- tibble::tribble(
~respid, ~member_id, ~gender, ~edu, ~dob,
100L, 1L, 1L, 3L, 1978L,
100L, 2L, 1L, 3L, 1980L,
200L, 1L, 1L, 4L, 1974L,
200L, 2L, 2L, 5L, 1955L,
300L, 1L, 2L, 3L, 1998L,
300L, 2L, 1L, 4L, 1999L,
300L, 3L, 2L, 3L, 2001L
)
desire output:
output <- tibble::tribble(
~respid, ~gender_1, ~edu_1, ~dob_1, ~gender_2, ~edu_2, ~dob_2, ~gender_3, ~edu_3, ~dob_3,
100L, 1L, 3L, 1978L, 1L, 3L, 1980L, NA, NA, NA,
200L, 1L, 4L, 1974L, 2L, 5L, 1955L, NA, NA, NA,
300L, 2L, 3L, 1998L, 1L, 4L, 1999L, 2L, 3L, 2001L
)
here I tried to make it, but row_number() dose not look right.
df %>%
group_by(member_id) %>%
mutate(t1 = paste0("gender_" , row_number())) %>%
spread(t1, gender)