簡體   English   中英

包括在 count() 中沒有觀察到的年份

[英]Including years with no observations in count()

我的數據看起來像這樣:

    ano estado_civil      n
   <dbl> <chr>         <int>
 1  2003 Solteiro(a)       1
 2  2006 Casado(a)         1
 3  2008 Solteiro(a)       1
 4  2009 Casado(a)         1
 5  2009 Divorciado(a)     1
 6  2010 Casado(a)         1
 7  2011 Casado(a)         1
 8  2012 Casado(a)         2
 9  2014 Casado(a)         1
10  2014 Solteiro(a)       1
11  2016 Casado(a)         2
12  2017 Casado(a)         1
13  2018 Casado(a)         5
14  2018 Solteiro(a)       1
15  2019 Casado(a)         2
16  2020 Casado(a)         2
17  2020 Divorciado(a)     1

對於沒有觀察的實例,我希望 n = 0,例如第二行應該是:

ano  estado_civil  n
2003 Divorciado(a) 0

但是,我不知道如何將沒有數據的年份和類別包含到我的 dataframe 中。

最后,這就是我的 geom_line plot 有一條連續的線(現在它只是在幾年內消失而沒有觀察到)

這是一個可能的data.table選項:

library(data.table)

dt <- setDT(df)[CJ(ano = ano,
                   estado_civil = estado_civil,
                   unique = TRUE),
                on = .(ano, estado_civil)][, n := nafill(n, fill = 0)]

Output

     ano  estado_civil n
 1: 2003     Casado(a) 0
 2: 2003 Divorciado(a) 0
 3: 2003   Solteiro(a) 1
 4: 2006     Casado(a) 1
 5: 2006 Divorciado(a) 0
 6: 2006   Solteiro(a) 0
 7: 2008     Casado(a) 0
 8: 2008 Divorciado(a) 0
 9: 2008   Solteiro(a) 1
10: 2009     Casado(a) 1
11: 2009 Divorciado(a) 1
12: 2009   Solteiro(a) 0
13: 2010     Casado(a) 1
14: 2010 Divorciado(a) 0
15: 2010   Solteiro(a) 0
16: 2011     Casado(a) 1
17: 2011 Divorciado(a) 0
18: 2011   Solteiro(a) 0
19: 2012     Casado(a) 2
20: 2012 Divorciado(a) 0
21: 2012   Solteiro(a) 0
22: 2014     Casado(a) 1
23: 2014 Divorciado(a) 0
24: 2014   Solteiro(a) 1
25: 2016     Casado(a) 2
26: 2016 Divorciado(a) 0
27: 2016   Solteiro(a) 0
28: 2017     Casado(a) 1
29: 2017 Divorciado(a) 0
30: 2017   Solteiro(a) 0
31: 2018     Casado(a) 5
32: 2018 Divorciado(a) 0
33: 2018   Solteiro(a) 1
34: 2019     Casado(a) 2
35: 2019 Divorciado(a) 0
36: 2019   Solteiro(a) 0
37: 2020     Casado(a) 2
38: 2020 Divorciado(a) 1
39: 2020   Solteiro(a) 0

數據

df <- structure(list(ano = c(2003L, 2006L, 2008L, 2009L, 2009L, 2010L, 
2011L, 2012L, 2014L, 2014L, 2016L, 2017L, 2018L, 2018L, 2019L, 
2020L, 2020L), estado_civil = c("Solteiro(a)", "Casado(a)", "Solteiro(a)", 
"Casado(a)", "Divorciado(a)", "Casado(a)", "Casado(a)", "Casado(a)", 
"Casado(a)", "Solteiro(a)", "Casado(a)", "Casado(a)", "Casado(a)", 
"Solteiro(a)", "Casado(a)", "Casado(a)", "Divorciado(a)"), n = c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 5L, 1L, 2L, 2L, 1L
)), class = "data.frame", row.names = c("1", "2", "3", "4", "5", 
"6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", 
"17"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM