R 如何添加缺少的年份和0以完成数据
我是R的新手。我想按产品代码和国家填写缺失年份和值的数据集,从1998年到2019年,每个数据集的值都为0。我该怎么做?例如,我想为productcode=0,country=700添加2000-2014年、2016-2019年和值0;等等R 如何添加缺少的年份和0以完成数据,r,dataframe,R,Dataframe,我是R的新手。我想按产品代码和国家填写缺失年份和值的数据集,从1998年到2019年,每个数据集的值都为0。我该怎么做?例如,我想为productcode=0,country=700添加2000-2014年、2016-2019年和值0;等等 productcode <- c(0,0,0,1,1,1,2,2,2,0,0,0,1,1,1,2,2,2) country <- c(700,700,700,700,700,700,700,700,700,540,540,540,540,540
productcode <- c(0,0,0,1,1,1,2,2,2,0,0,0,1,1,1,2,2,2)
country <- c(700,700,700,700,700,700,700,700,700,540,540,540,540,540,540,540,540,540)
year <- c(1998,1999,2015,1999,2000,2018,1998,2000,2001,1998,1999,
2015,1999,2000,2018,1998,2000,2001)
export <- c(317,200,190,15,18,19,200,99,90,81,222,250,719,647,1000,29,80,22)
DF <- data.frame(productcode, country, year, export)
productcode根据您编辑的问题,您可能正在查找tidyr::complete
withnesting
或groupby
oncountry
和productcode
。此外,您还必须在添加的行中通过0
填充值(可能您的意思是export
value)。在tidyverse
library(dplyr)
library(tidyr)
DF %>% tidyr::complete(year = seq(1998, 2019,1), nesting(productcode, country), fill = list(export = 0))
# A tibble: 132 x 4
year productcode country export
<dbl> <dbl> <dbl> <dbl>
1 1998 0 540 81
2 1998 0 700 317
3 1998 1 540 0
4 1998 1 700 0
5 1998 2 540 29
6 1998 2 700 200
7 1999 0 540 222
8 1999 0 700 200
9 1999 1 540 719
10 1999 1 700 15
# ... with 122 more rows
所说的值
是指导出
?
DF <- DF %>% group_by(country, productcode) %>%
complete(year = 1998:2019, fill = list(export = 0))
> DF %>% as.data.frame()
country productcode year export
1 540 0 1998 81
2 540 0 1999 222
3 540 0 2000 0
4 540 0 2001 0
5 540 0 2002 0
6 540 0 2003 0
7 540 0 2004 0
8 540 0 2005 0
9 540 0 2006 0
10 540 0 2007 0
11 540 0 2008 0
12 540 0 2009 0
13 540 0 2010 0
14 540 0 2011 0
15 540 0 2012 0
16 540 0 2013 0
17 540 0 2014 0
18 540 0 2015 250
19 540 0 2016 0
20 540 0 2017 0
21 540 0 2018 0
22 540 0 2019 0
23 540 1 1998 0
24 540 1 1999 719
25 540 1 2000 647
26 540 1 2001 0
27 540 1 2002 0
28 540 1 2003 0
29 540 1 2004 0
30 540 1 2005 0
31 540 1 2006 0
32 540 1 2007 0
33 540 1 2008 0
34 540 1 2009 0
35 540 1 2010 0
36 540 1 2011 0
37 540 1 2012 0
38 540 1 2013 0
39 540 1 2014 0
40 540 1 2015 0
41 540 1 2016 0
42 540 1 2017 0
43 540 1 2018 1000
44 540 1 2019 0
45 540 2 1998 29
46 540 2 1999 0
47 540 2 2000 80
48 540 2 2001 22
49 540 2 2002 0
50 540 2 2003 0
51 540 2 2004 0
52 540 2 2005 0
53 540 2 2006 0
54 540 2 2007 0
55 540 2 2008 0
56 540 2 2009 0
57 540 2 2010 0
58 540 2 2011 0
59 540 2 2012 0
60 540 2 2013 0
61 540 2 2014 0
62 540 2 2015 0
63 540 2 2016 0
64 540 2 2017 0
65 540 2 2018 0
66 540 2 2019 0
67 700 0 1998 317
68 700 0 1999 200
69 700 0 2000 0
70 700 0 2001 0
71 700 0 2002 0
72 700 0 2003 0
73 700 0 2004 0
74 700 0 2005 0
75 700 0 2006 0
76 700 0 2007 0
77 700 0 2008 0
78 700 0 2009 0
79 700 0 2010 0
80 700 0 2011 0
81 700 0 2012 0
82 700 0 2013 0
83 700 0 2014 0
84 700 0 2015 190
85 700 0 2016 0
86 700 0 2017 0
87 700 0 2018 0
88 700 0 2019 0
89 700 1 1998 0
90 700 1 1999 15
91 700 1 2000 18
92 700 1 2001 0
93 700 1 2002 0
94 700 1 2003 0
95 700 1 2004 0
96 700 1 2005 0
97 700 1 2006 0
98 700 1 2007 0
99 700 1 2008 0
100 700 1 2009 0
101 700 1 2010 0
102 700 1 2011 0
103 700 1 2012 0
104 700 1 2013 0
105 700 1 2014 0
106 700 1 2015 0
107 700 1 2016 0
108 700 1 2017 0
109 700 1 2018 19
110 700 1 2019 0
111 700 2 1998 200
112 700 2 1999 0
113 700 2 2000 99
114 700 2 2001 90
115 700 2 2002 0
116 700 2 2003 0
117 700 2 2004 0
118 700 2 2005 0
119 700 2 2006 0
120 700 2 2007 0
121 700 2 2008 0
122 700 2 2009 0
123 700 2 2010 0
124 700 2 2011 0
125 700 2 2012 0
126 700 2 2013 0
127 700 2 2014 0
128 700 2 2015 0
129 700 2 2016 0
130 700 2 2017 0
131 700 2 2018 0
132 700 2 2019 0