当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《LeafletR基于多个变量的颜色图?》经验,为你挑选了1个好方法。

从我所看到的传单中的彩色地图通常只描绘一个变量(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中有没有办法挑选出含酒精的饮料,给它们分配一种颜色,然后在地图上显示它们,以显示哪种类型的酒精饮料在三个不同的国家最受欢迎?



1> Spacedman..:

步骤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列.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有