R包开发每日中国天气

本文详细介绍了如何使用R语言开发一个名为chinaWeather的R包,涵盖从构建项目到打包发布的全过程,包括静态数据处理、功能代码编写、项目配置、调试和打包。在开发过程中,作者在Linux环境下处理了字符集兼容性问题,将静态数据转换为rda文件,并编写了一系列用于获取和展示天气数据的函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大。

R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育,银行,电商,互联网….都在使用R语言。

要成为有理想的极客,我们不能停留在语法上,要掌握牢固的数学,概率,统计知识,同时还要有创新精神,把R语言发挥到各个领域。让我们一起动起来吧,开始R的极客理想。

关于作者:

  • 张丹(Conan), 程序员Java,R,PHP,Javascript
  • weibo:@Conan_Z
  • blog: http://blog.fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/r-package-chinaweather/

r-package-chinaweather

前言

本节将继续R语言天气可视化应用一文的内容,把我们已经完成的R语言程序,封装成R语言程序包。这个看起来简单的任务,其实要花很多的时间来处理细节。整个的R包开发过程,将按照文章在巨人的肩膀前行 催化R包开发的流程进行,为了保证check()函数的顺利执行,代码有多处改动。

目录

  1. 构建项目
  2. 静态数据
  3. 编写功能代码
  4. 项目配置文件
  5. 调试程序
  6. 程序打包

1. 构建项目

R语言天气可视化应用一文,我们写的R程序都在Window中完成,由于R的跨平台代码有兼容性的问题,我们的应用程序最终将在Linux中发布,所以为了减少发布时不必要的麻烦,我们转到Linux系统中完成R包的开发。

本节的系统环境

  • Linux: Ubuntu Server 12.04.2 LTS 64bit
  • R: 3.1.1 x86_64-pc-linux-gnu (64-bit)
  • RStudio-Server 0.97.551

在巨人的肩膀前行 催化R包开发文中,我们其实已经创建好了chinaWeather项目,那么R包的开发将继续在这个项目中进行。进入chinaWeather项目的目录,我单独开一个Git分支,进行本节的R包开发。


~ cd /home/conan/R/chinaWeather     # 进入项目目录
~ git branch app                    # 新建分支,名为app
~ git checkout app                  # 切换到分支app
~ git branch                        # 查看当查的分支
  * app
    master

查看Linux系统中,R语言环境变量的设置,字符集是特别要处理的部分。


> sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=zh_CN.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] LC_MONETARY=zh_CN.UTF-8    LC_MESSAGES=en_US.UTF-8
 [7] LC_PAPER=zh_CN.UTF-8       LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C
[11] LC_MEASUREMENT=zh_CN.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

环境准备就绪,下面就是开始R包开的工作了。

2. 静态数据

在开始写R包代码之前,我们需要先来整理一下静态数据。 这个项目中,静态数据包括了地图数据、WOEID映射数据、天气概况的映射数据、中英文图片可视化数据、测试数据集。对于普通的R应用程序来说可以用CSV格式文件保存在本地,但对于R包项目来说,最好是封装成rda的数据文件,随R包一起打包发布。

首先,我们就要对这些静态数据文件进行整理,新建目录metadata,用于存储原始CSV文件和地图文件。


~ mkdir /home/conan/R/chinaWeather/metadata         # 新建目录,并把原数据文件复制到metadata目录
~ ls -l /home/conan/R/chinaWeather/metadata         # 查看metadata目录
-rw-rw-r-- 1 conan conan 3396 10月  4 22:14 20141001.csv         # 测试数据集
-rw-r--r-- 1 conan conan  754  2月  5  2013 ADCODE99.csv         # ADCODE99与省份中文映射数据
-rw-r--r-- 1 conan conan 1418  2月  6  2013 code.csv             # 天气概况映射数据
-rw-r--r-- 1 conan conan  214  2月  6  2013 labelcode.csv        # 天气概况映射数据
drwxr-xr-x 2 conan conan 4096  4月 23  2013 mapdata              # 地图数据目录
-rw-rw-r-- 1 conan conan 1900  2月  4  2013 WOEID.csv            # WOEID映射数据

~ ls -l /home/conan/R/chinaWeather/metadata/mapdata     # 查看地图数据文件
-rw-r--r-- 1 conan conan   86283  4月 10  1999 bou2_4p.dbf
-rw-r--r-- 1 conan conan 1508752  4月 10  1999 bou2_4p.shp
-rw-r--r-- 1 conan conan    7500  4月 10  1999 bou2_4p.shx

把静态数据转换为rda格式的文件,存储在data目录中。


~ mkdir /home/conan/R/chinaWeather/data       # 新建目录data
~ R                                           # 启动R语言程序。

2.1 WOEID数据文件 WOEID.rda

对WOEID数据进行处理,把adcode99代码合并到WOEID数据集中,合并WOEID.csv文件和ADCODE99.csv文件的数据,生成WOEID.rda的文件。


> WOEID names(WOEID) adcode99 fc WOEID save(WOEID,file="data/WOEID.rda")                                     # 生成WOEID.rda文件

> WOEID     # 合并后的WOEID数据集
               en    woeid       zh             prov      long      lat adcode99
  1       beijing  2151330     北京           北京市 116.46667 39.90000   110000
  2      shanghai  2151849     上海           上海市 121.48333 31.23333   310000
  3        tianji  2159908     天津           天津市 117.18333 39.15000   120000
  4     chongqing 20070171     重庆           重庆市 106.53333 29.53333   500000
  5        harbin  2141166   哈尔滨         黑龙江省 12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值