我是 R 新手。我正在使用一个比较面板数据集,其中一个关键变量是时间的横截面,因此我必须对该时间段内的所有变量进行平均。
数据的格式如下:行是国家观察,列是可变年份。
我已经构建了这个例子:
cname<- c("ARGENTINA", "BOLIVIA", "CHILE", "CHINA", "ECUADOR", "EGYPT")
gdp2003<- c(1.5, 2.3, 5.2, 12, 2.3, 3.3)
gdp2004<- c(1.7, 2.2, 4.7, 13.3, 1.7, 1.5)
corrupt2003<- c(5.1, 6.7, 3.4, 5.5, 4.5, 8.7)
corrupt2004<- c(4.5, 5.4, 2.4, 4.5, 5.4, 8.9)
df<- data.frame(cbind(cname, gdp2003, gdp2004, corrupt2003, corrupt2004))
df
生成此输出:
cname gdp2003 gdp2004 corrupt2003 corrupt2004
1 ARGENTINA 1.5 1.7 5.1 4.5
2 BOLIVIA 2.3 2.2 6.7 5.4
3 CHILE 5.2 4.7 3.4 2.4
4 CHINA 12 13.3 5.5 4.5
5 ECUADOR 2.3 1.7 4.5 5.4
6 EGYPT 3.3 1.5 8.7 8.9
我想创建一个函数,可以按国家 obs 对列变量进行平均,如下所示:
cname gdp2003 gdp2004 corrupt2003 corrupt2004 new.col.gdp new.col.corrupt
1 ARGENTINA 1.5 1.7 5.1 4.5 1.6 4.8
2 BOLIVIA 2.3 2.2 6.7 5.4 2.25 6.05
3 CHILE 5.2 4.7 3.4 2.4 4.95 2.9
4 CHINA 12 13.3 5.5 4.5 12.65 5
5 ECUADOR 2.3 1.7 4.5 5.4 2 4.95
6 EGYPT 3.3 1.5 8.7 8.9 2.4 8.8
任何帮助,将不胜感激。