Leaflet R基于多个变量的颜色图?

Ulg*_*gur 1 r leaflet

从我所看到的传单中的彩色地图通常只描绘一个变量(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
Run Code Online (Sandbox Code Playgroud)

在传单R中有没有办法挑选出含酒精的饮料,给它们分配一种颜色,然后在地图上显示它们,以显示哪种类型的酒精饮料在三个不同的国家最受欢迎?

Spa*_*man 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))
Run Code Online (Sandbox Code Playgroud)

注意我将国家/地区作为列 - 您的行名称中可能包含国家/地区,这意味着以下代码需要更改.无论如何.我们得到:

> 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
Run Code Online (Sandbox Code Playgroud)

现在我们结合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
Run Code Online (Sandbox Code Playgroud)

如果有一个平局,那么which.max将选择(我认为)第一个元素.如果你想要别的东西,你就必须重写.

现在将新数据框提供给传单并映射Favourite列.