【发布时间】:2016-12-24 01:23:05
【问题描述】:
您好几天以来我一直在为一个问题苦苦挣扎,但还没有找到任何答案。
假设我有一个包含以下列的数据集:国家、人口。国家以数字形式编码,因此原始数据集如下所示:
df <- data.frame(country=c(1,2,3,4,5,6), population=c(10000,20000,30000,4000,50000,60000))
df
country population
1 1 10000
2 2 20000
3 3 30000
4 4 4000
5 5 50000
6 6 60000
我希望国家/地区成为以下级别的因素:法国、德国、加拿大、美国、印度、中国和欧洲、美洲、亚洲。 所以说一个因素组合:
df$country <- factor(df$country, labels = c("France", "Germany", "Canada", "USA", "India", "Asia"))
df
country population
1 France 10000
2 Germany 20000
3 Canada 30000
4 USA 4000
5 India 50000
6 Asia 60000
和
df$country <- cut(df$country, breaks = c(0,2,4,6),labels = c("Europe", "America", "Asia"))
df
country population
1 Europe 10000
2 Europe 20000
3 America 30000
4 America 4000
5 Asia 50000
6 Asia 60000
我的目标是做类似的事情:
tapply(df$population, df$country, sum)
结果如下:
France Germany Canada USA India China Europe America Asia
10000 20000 30000 4000 50000 60000 30000 34000 110000
有没有办法做到这一点,而无需在数据框中创建第三列?
我希望这是可以理解的,我的问题是什么。
我已经尝试过interaction(),但这不是我想要的。
【问题讨论】: