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

浏览: 1570

image.png

本文翻译和改编自Sharp Sight Labs

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

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

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

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

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

由易入手,逐个击破 

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

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

image.png

三行代码(硬要算上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
()

image.png

在这里我想强调的是如果你了解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
()

image.png

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

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

 image.png

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

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

image.png

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

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

由小见大,举一反三

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

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

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

image.png

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

 

原文链接:

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

往期精彩:

如何写出整洁规范的R代码?是时候讨论一下代码规范性了

R语言也能玩ps?magick包你值得拥有

【机器学习】决策树总结|ID3 C4.5/C5.0 CHAID CART与QUEST

R语言向量化运算:apply函数族用法心得

Python面向对象编程:数据封装、继承和多态

[译]为什么R语言是当今最值得学习的数据科学语言

Python高级特性:切片、迭代、列表生成式、生成器与迭代器


一个数据科学狂热者的学习历程

推荐 1
本文由 鲁伟 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册