Как добавить отсутствующие строки данных как NA в Tidyverse - PullRequest
0 голосов
/ 12 октября 2018

Я пытался использовать complete для дополнения своих данных с помощью NA, но получаю пустой.

df <- data.frame(Quarter = c("Current Quarter", "Previous Year", "Current Quarter", "Previous Quarter", "Previous Year"),
           Name = c("Zach", "Zach", "Tom", "Tom", "Tom"),
           Score1 = c(1, 2, 1, 2, 1),
           Score2 = c(8, 9, 10, 11, 12))
df

Возвращает:

           Quarter Name Score1 Score2
1  Current Quarter Zach      1      8
2    Previous Year Zach      2      9
3  Current Quarter  Tom      1     10
4 Previous Quarter  Tom      2     11
5    Previous Year  Tom      1     12

Я бы хотел использовать complete для полученияDF, чтобы выглядеть так:

           Quarter Name Score1 Score2
1  Current Quarter Zach      1      8
2 Previous Quarter Zach     NA     NA
3    Previous Year Zach      2      9
4  Current Quarter  Tom      1     10
5 Previous Quarter  Tom      2     11
6    Previous Year  Tom      1     12

1 Ответ

0 голосов
/ 12 октября 2018

Используя complete

library(tidyverse)
df %>% complete(Quarter, Name)

#  Quarter          Name  Score1 Score2
#  <fct>            <fct>  <dbl>  <dbl>
#1 Current Quarter  Tom        1     10
#2 Current Quarter  Zach       1      8
#3 Previous Quarter Tom        2     11
#4 Previous Quarter Zach      NA     NA
#5 Previous Year    Tom        1     12
#6 Previous Year    Zach       2      9

Мы можем arrange это так, как мы хотим

df %>% 
  complete(Quarter, Name) %>%
  arrange(desc(Name))

#  Quarter          Name  Score1 Score2
#  <fct>            <fct>  <dbl>  <dbl>
#1 Current Quarter  Zach       1      8
#2 Previous Quarter Zach      NA     NA
#3 Previous Year    Zach       2      9
#4 Current Quarter  Tom        1     10
#5 Previous Quarter Tom        2     11
#6 Previous Year    Tom        1     12
...