前几章对R语言的运行原理、基本语法、数据类型、环境部署等基础知识作了简单介绍,本节将结合具体案例进行验证测试。 案例场景:从互联网下载全国三甲医院数据,以地图作为背景,展现各医院在地图上的分布图。全国三甲医院数据来源 http://www.wxmp.cn/cms/detail-51610-23480-1.html

 目录:

  • map包研究
  • 效果图
  • 数据清洗
  • R开发
  • R脚本部署

map包研究:


  • CRAN上地图的一个常用包就是maps (https://cran.r-project.org/web/packages/maps/index.html), 它里边一个基本的函数是map( ).
  • 示例: map('world', fill = TRUE,col=colors( )) , 你在Rstudio执行语句得出的结果可看出这个包用的数据集够老了,苏联还在,画中国地图,还需要用到 mapdata 包(http://cran.r-project.org/web/packages/mapdata/index.html) 这是maps的补充包,给了更高清晰度或更大的数据集。里边提供了中国和日本地图。 但是这个地图数据更老,没有重庆市,直接 Pass。
  • ggmap包是基于ggplot2的图层语法构建的R包,ggplot2作为R的图形系统,其最鲜明的特点在于其分层语法,即把图像元素一层层叠加在基础画布之上。事实上,一张主题地图就相当把地图作为画布,而把基于地理的信息表现在地图上。如果作为基础画布的地图和ggplot2的分层语法结合起来,那么就能更高效绘制主题地图。这个结合的工作就是由ggmap包来实现的
  • ggmap 它结合了来自Google Maps,OpenStreet Map,Stamen Maps和CloudMade Maps的静态地图信息来绘制主题地图,但遗憾的是国内无法访问google map, 只能 pass
  • REmap 是一个基于Echarts2.0 的一个R包.主要的目的是为广大数据玩家提供一个简便的,可交互的地图数据可视化工具,在此基础上,稍作修改,基本可用,但存在一个问题就是 Echart2.0 在移动终端上无法自适应

效果图:


  • R(四): R开发实例-map分布图

数据清洗:


  • 完成本节验证,需要用到 github 上的两个软件包, baidumap (清洗数据时根据医院名称获取经纬度) REmap (可视化展现),安装命令如下
  • R命令: install.packages("devtools")
  • R命令: library(devtools)
  • R命令: install_github('badbye/baidumap')
  • R命令: install_github('lchiffon/REmap')
  • 从网上抓取的数据整理后保存至一个txt文件 (数据来源 http://www.wxmp.cn/cms/detail-51610-23480-1.html
  • 加载baidumap包,获取医院的经纬度,再对数据进行清洗,将结果保存至本地的文件
  • window Rstudio环境,代码如下(纠正一下,write.table 里面的参数增加 sep="\t":
    #读取数,删除空值
    pdata<-read.csv("d:\\data.txt",sep="\t",header=FALSE,col.names = c("city","name"))
    pdata <- na.omit(pdata)
    
    #加载baidumap 根据名称获取医院经纬度
    library(baidumap)
    bhs <- getCoordinate(pdata$name,formatted = T)
    
    #组织清洗后的数据
    hsdata <- data.frame(name=rownames(bhs),lon=bhs[,1],lat=bhs[,2])
    result <- merge(pdata,hsdata,by.x="name",by.y="name")
    head(result)
    
    #删除空值数据
    result <- na.omit(result)
    
    #保存清空后的数据
    path <- c("d:\\data1.txt")
    write.table(result,file = path,row.names = FALSE)
    View Code

相关文章:

  • 2021-12-17
  • 2021-12-26
  • 2021-12-13
  • 2022-01-12
  • 2021-08-23
  • 2021-06-27
  • 2022-03-03
猜你喜欢
  • 2022-01-31
  • 2021-10-31
  • 2022-12-23
  • 2021-04-25
  • 2023-03-07
  • 2021-08-05
  • 2022-12-23
相关资源
相似解决方案