R的极客理想——高级开发篇 · 第二十二节
《R的极客理想——高级开发篇》第二十二节
本节介绍每日中国天气应用的R语言实现,程序设计分六部分:爬虫、本地存储、地图加载、数据可视化、生成静态图和生成可交互的静态图。
本节介绍每日中国天气应用的R语言实现,程序设计分六部分:爬虫、本地存储、地图加载、数据可视化、生成静态图和生成可交互的静态图。
爬虫部分用RCurl抓取Yahoo天气的XML数据(因Google接口在大陆常访问不到),用XML包解析,每个城市只保留7个字段。本地存储用write.csv输出,另定义filename()和loadDate()两个函数处理文件命名与多城市合并,依据含34个中国城市WOEID的列表文件生成20141010.csv。地图加载用maps、mapdata、maptools三个包,通过readShapePoly()读入中国行政区地图的三个shape文件,map为S4的SpatialPolygonsDataFrame对象,含7列925行。数据可视化分数据处理与输出:把Yahoo的49种天气代码合并为18种(映射文件lablecode.csv),匹配颜色和图例,约100行代码生成静态图。最后用recharts包(经devtools从Github安装)调用Echarts,以weather_html()函数生成HTML5可交互图,可输出白天、夜间气温并支持鼠标交互,也可存为HTML文件。下一节将把这些代码封装成R包。