Pivot_wider представляет NA - PullRequest
       0

Pivot_wider представляет NA

0 голосов
/ 26 марта 2020

Я занимаюсь управлением данными для проекта и сталкиваюсь с трудностями с тем, что, как я думал, было бы базовым c преобразованием из длинного формата в широкий.

Данные выглядят примерно так:

df <- structure(list(ID = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2), 
               Time = c(1, 1, 1, 1, 2, 2, 2, 2, 3, 1, 1, 1, 1, 2, 2), 
               Type = c("A", "B", "C", "D", "A", "B","C", "D", "A", "A", "B", "C", "D", "A", "B"),
               Value = c(100, NA, 40, 123, 95, NA, 45, 1234, 100, 70, NA, 50, 12345, 75, NA)), 
               row.names = c(NA, 15L), class = "data.frame")

Основываясь на предыдущих ответах Stackoverflow, я пытаюсь использовать сводную область, как это:

df.wide <- df %>%
  group_by(ID, Type) %>%
  mutate(row = row_number()) %>%
  pivot_wider(names_from = Type, values_from = Value)

Однако это возвращает фрейм данных со значениями NA в max (Time) для каждого идентификатора, который выглядит как это:

# A tibble: 5 x 7
     ID  Time   row     A     B     C     D
  <dbl> <dbl> <int> <dbl> <dbl> <dbl> <dbl>
1     1     1     1   100    NA    40   123
2     1     2     2    95    NA    45  1234
3     1     3     3   100    NA    NA    NA
4     2     1     1    70    NA    50 12345
5     2     2     2    75    NA    NA    NA

Что я делаю не так? Мой гугл и Stackoverflow-fu не смогли мне помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...