摘要: 上图是对国内机场和航线信息进行了一个简单的可视化。圆点表示了中国163个机场的位置,线条显示了5381条航线。之前曾在这个网站上见到了作者用R语言来对全世界的航线进行可视化。正所谓见贤思齐,本图就是模仿山寨的结果。但是这个图的生成没有原文那么复杂,所用到的地理图形包和步骤也与原例略有不同,比较失败的是没有展现出原图的夜景效果。具体实施的步骤如下: 从这个网站下载到机场数据和航线数据; 从中挑选出中国的机场和国内航线,并加以整理; 用ggmap包读取谷歌地图; 将机场和航线信息绘制在地图上。library(ggmap)data.port<-read.csv('d:\\airport 阅读全文
posted @ 2012-09-11 15:26 yyzhang 阅读(1361) 评论(0) 推荐(0) 编辑
摘要: 随着教程推进,基本的语法都接触得差不多了。当要解决某个具体问题时,只需要考虑用什么样的算法来整合运用这些函数和表达式。今天来解决Project Euler的第五个问题,该问题可以用很笨的暴力搜索法子来作,但是更聪明的作法是采用质因子分解的思路。即任何一个合数都可以分解为质数的乘积。为了完成这个题目,还需要学习一点点矩阵,以及和sapply函数相似的另一个函数apply。# 预备练习mat <- matrix(1:12,ncol=4)print(mat)t(mat)colnames(mat) <- c('one','two','three 阅读全文
posted @ 2012-09-11 12:32 yyzhang 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 看到各位对“笨办法系列”的东西还比较感兴趣,我也很乐意继续写下去。今天的示例将会用到数据框(data.frame)这种数据类型,并学习如何组合计算两个向量,以及如何排序。我们将用所学的东西来解决Project Euler的第四个问题,就是找出一个集合中最大的回文数。回文数是指一个像1534351这样“对称”的数,如果将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样。开始啦!# 预备练习x <- y <- 1:9data <- expand.grid(x=x,y=y)print(data)z <- data$x * data$y# 一个九九乘法表z < 阅读全文
posted @ 2012-09-11 12:19 yyzhang 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 经历了前面两个小挑战,你应该对R有点理解了。我们继续推进,今天的问题有点点复杂,复杂的不是R,而是一个数学概念:质数和质因子。任何一个合数都可以被几个质数所分解,这个性质很重要,我们将用它来解决Project Euler的第三个问题。还是和之前一样的,你需要自己在R控制台中敲打下面这些命令,根据结果自行揣摩其用处。# 预备练习,学习for循环、建立自定义函数和其它一些函数for (n in 1:10) {print(sqrt(n))}x <- c('hello','world','I','love','R') 阅读全文
posted @ 2012-09-11 12:18 yyzhang 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 本例将介绍R语言中的while循环和if条件。最终用它来解决Project Euler的第二个问题。除了练习之外你还需要了解一些斐波纳契数列的知识。废话不多说了,打开R控制台,跟着输入下面的代码,自行琢磨吧。# 预备练习,while循环和if判断x <- 1:10print(x)print(x[10])print(x[-10])i <- 1while (i <= 10) {print(x[i])i <- i + 1}i <- 1while (TRUE) {print(x[i])i <- i + 1if (i > 10) break}# 用循环和条件来完 阅读全文
posted @ 2012-09-11 12:10 yyzhang 阅读(400) 评论(0) 推荐(0) 编辑
无觅关联推荐,快速提升流量