从我所看到的传单中的彩色地图通常只描绘一个变量(GDP,犯罪统计数据,温度等),如下所示:
。 有没有办法在传单R中制作显示数据框中最高变量的地图?例如,显示哪个酒精饮料在一个国家/地区最受欢迎,例如此地图?
this http://i.dailymail.co.uk/i/pix/2011/02/17/article-1357892-0D3BD418000005DC-958_972x546.jpg 假设我有一个看起来像这样的数据框,我想做一个与酒精饮料相似的地图......
Country Beer Wine Spirits Coffee Tea
Sweden 7 7 5 10 6
USA 9 6 6 7 5
Russia 5 3 9 5 8
在传单R中是否有办法挑选酒精饮料,为它们分配颜色然后在地图上显示它们以显示哪种类型的酒精饮料在三个不同的国家最受欢迎?
答案 0 :(得分:5)
步骤0,制作测试数据框:
> set.seed(1234)
> drinks = data.frame(Country=c("Sweden","USA","Russia"),
Beer=sample(10,3), Wine=sample(10,3), Spirits=sample(10,3),
Coffee=sample(10,3), Tea=sample(10,3))
注意我将国家/地区作为列 - 您的行名称中可能包含国家/地区,这意味着以下代码需要更改。无论如何。我们得到:
> drinks
Country Beer Wine Spirits Coffee Tea
1 Sweden 2 7 1 6 3
2 USA 6 8 3 7 9
3 Russia 5 6 6 5 10
现在我们将apply
合并到行,which.max
以获取最高元素,并使用各种子集操作删除国家/地区列并从列名称中获取饮品名称:
> drinks$Favourite = names(drinks)[-1][apply(drinks[,-1],1,which.max)]
> drinks
Country Beer Wine Spirits Coffee Tea Favourite
1 Sweden 2 7 1 6 3 Wine
2 USA 6 8 3 7 9 Tea
3 Russia 5 6 6 5 10 Tea
如果有平局,那么which.max
将挑选(我认为)第一个元素。如果你想要别的东西,你就必须重写。
现在将新数据框提供给传单并映射Favourite
列。