Как преобразовать длинную в широкую форму с помощью Tidyverse [duplicate]

Если вы хотите, чтобы что-то вроде всех изображений, которые вы получаете с URL-адреса, сначала размывается, а затем загружается в imageView, тогда вам нужно использовать Android NDK и OpenCV

0
задан Ann 19 January 2019 в 08:45
поделиться

1 ответ

Вы можете сделать:

df %>%
 gather(var, val, -c(respid, member_id)) %>%
 mutate(var = paste(var, member_id, sep = "_")) %>%
 select(-member_id) %>%
 spread(var, val)

  respid dob_1 dob_2 dob_3 edu_1 edu_2 edu_3 gender_1 gender_2 gender_3
   <int> <int> <int> <int> <int> <int> <int>    <int>    <int>    <int>
1    100  1978  1980    NA     3     3    NA        1        1       NA
2    200  1974  1955    NA     4     5    NA        1        2       NA
3    300  1998  1999  2001     3     4     3        2        1        2

Сначала выполняется преобразование данных из широкого в длинный формат. Во-вторых, он создает новые имена переменных. Наконец, он возвращает его обратно в широкоформатный формат.

Или используя reshape2:

dcast(melt(df, id.vars = c("respid", "member_id")), respid~variable+member_id, value.var = "value")

  respid gender_1 gender_2 gender_3 edu_1 edu_2 edu_3 dob_1 dob_2 dob_3
1    100        1        1       NA     3     3    NA  1978  1980    NA
2    200        1        2       NA     4     5    NA  1974  1955    NA
3    300        2        1        2     3     4     3  1998  1999  2001
0
ответ дан tmfmnk 19 January 2019 в 08:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: