[英]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.