从我所看到的传单中的彩色地图通常只描绘一个变量(GDP,犯罪统计数据,温度等),如下所示:
.有没有办法在传单R中制作显示数据框中最高变量的地图?例如,显示哪个酒精饮料在一个国家/地区最受欢迎,比如这个地图?
这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,制作测试数据框:
> 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
获取最高元素,以及各种子集操作来删除country列并从列名中获取饮品名称:
> 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
列.