其他

R语言学习之道:罗马非一日建成

2017-11-14 鲁伟 R语言中文社区


作者:鲁伟,热爱数据,坚信数据技术和代码改变世界。R语言和Python的忠实拥趸,为成为一名未来的数据科学家而奋斗终生。个人公众号:数据科学家养成记 (微信ID:louwill12)


本文翻译和改编自Sharp Sight Labs


要想精通数据科学,大量的练习必不可少。说起来容易做起来难,实际上很多人并不知道该如何练习。


如何进行数据科学的训练是一个十分广泛的话题,这有点超出本文所要介绍的范围了,但在这里我还是想给大家介绍一些有效的建议:


在众多的数据科学技能之中,你一开始最应该掌握最重要的那些技术,然后通过写一些小的脚本来不断的练习直到你知道了这些技能的前因后果在数据科学领域,知其所以然往往更重要。


稍微夸张一点说就是,你最终目标应该是闭着眼睛就可以复盘所有的代码。


在此信念下,我想给大家一些小的脚本案例供大家来练习。下面是一些关于绘制一些地图的R代码。(我希望大家能认真注意一下下面的代码有多简单,又有多少函数和命令是你实际需要知道的)


由易入手,逐个击破 


先从一个简单的例子开始:创建一幅美国地图。

# MAP USA (STATES)
map_data("state") %>%  ggplot(aes(x = long, y = lat, group = group)) +    geom_polygon()

三行代码(硬要算上library函数的话那就是四行)。

总之三行代码我们搞定了美国地图。

并且你仅需要改变5个字符(把usa改成state)就可以得到一幅显示各州的美国地图。


如果你再添加一条线,你可以使用filter函数对你的数据取个子集,然后展示一部分州的地图。

# MAP CALIFORNIA, NEVADA, OREGON, WASHINGTON
# - to do this, we're using dplyr::filter()
# ... otherwise, it's almost exactly the same as the previous code
map_data("state") %>%  filter(region %in% c("california","nevada","oregon","washington")) %>%  ggplot(aes(x = long, y = lat, group = group)) +    geom_polygon()

在这里我想强调的是如果你了解filter函数和管道操作符(%>%)的性能的话,你会意识到这有多么方便快捷。

你要是再对这个图做一些变化的话,你也可以创建各个州下面的县的地图展示。

# MAP CALIFORNIA, NEVADA, OREGON, WASHINGTON
# - to do this, we're using dplyr::filter()
# ... otherwise, it's almost exactly the same as the previous code
map_data("state") %>%  filter(region %in% c("california","nevada","oregon","washington")) %>%  ggplot(aes(x = long, y = lat, group = group)) +    geom_polygon()

再修改一下代码世界地图也可以轻易画出来:

# MAP WORLD
map_data("world") %>%  ggplot(aes(x = long, y = lat, group = group)) +    geom_polygon()


之后你可以选择绘制任意一个国家的地图,比如说中国:

# MAP China
map_data("world") %>%  filter(region == 'China') %>%  ggplot(aes(x = long, y = lat, group = group)) +    geom_polygon()

(改编者注:美帝国主义用心险恶,这里制成的中国地图没有台湾省,大家要注意)


我想再一次强调的是上面所有地图都只需要对我们一开始的那三行代码进行略微的修改就可以得到这些图形。在创建这样的基础地图的时候真的不需要我们用的多少复杂的方法,通常简单的两个R语言函数即可搞定。


由小见大,举一反三


也许你会问:为什么一定要练习这些基本的绘图函数?平时这些都太简单根本用不着。你应该认识到建成罗马城并非一日之功,学习R语言尤是如此。


此外,这些小的代码片段也是由一些基本函数构成的,你也可以把这些函数抽出来单独进行学习。所以精通一门语言的诀窍首先在于你要掌握一些基本的很微小的单个命令和函数。在你熟记这些语法和函数之后,这样的小脚本练习就让你有机会写一个稍微复杂一点的程序。不断的写这样的小片段代码,然后把它们组合起来你就可以完成更复杂的数据分析情形。多次练习之后,你就有信心直接上手一些小的数据分析项目了。


比如说,在经过上面很多次的绘制地图的小片段的代码练习后,你就可以绘制一些像下面这样复杂的地图:


如果你真想熟练掌握数据科学的技巧的话,在进行大的练习之前不断的找小的脚本片段进行练习。对这些练习代码反复拆分重组直到你可以不假思索的在你的电脑上敲出它们。你会回来感谢我的,祝好。


原文链接:

http://sharpsightlabs.com/blog/simple-practice-maps-tidyverse/


公众号后台回复关键字即可学习

回复 R              R语言快速入门免费视频 
回复 统计          统计方法及其在R中的实现
回复 用户画像   民生银行客户画像搭建与应用 
回复 大数据      大数据系列免费视频教程
回复 可视化      利用R语言做数据可视化
回复 数据挖掘   数据挖掘算法原理解释与应用
回复 机器学习   R&Python机器学习入门 

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存