我是R新手。我正在使用具有一个关键变量的比较面板数据集,该变量是时间截面,因此我有在这段时间内平均所有变量。生成一个新变量,用于平均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
任何帮助,将不胜感激。
rowMeans。那是你在找什么?此外,您的代码在大多数行的末尾还有额外的括号。 – sayhey69 2012-08-07 00:59:00
请确保您的数字数据不首先保存为因子,否则在尝试应用答案时会出现错误并且没有结果!您的最后一个data.frame创建行应该是'df < - data.frame(cname,gdp2003,gdp2004,corrupt2003,corrupt2004)'以使事情正常工作。 – thelatemail 2012-08-07 01:42:34