Pivot_wider介绍了NA

时间:2020-03-26 11:45:26

标签: r dplyr

我正在为一个项目进行数据管理,我遇到了一些困难,我认为这将是从Long格式到Wide的基本重塑。

数据看起来像这样:

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答案,我正在尝试像这样使用pivot-wider:

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

但是,对于每个如下所示的ID,它会返回一个数据帧,该数据帧在max(Time)处具有NA值:

# 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

我在做什么错?我的Google和Stackoverflow-fu无法帮助我。

0 个答案:

没有答案