作为一名数据分析师,R是怎样影响我的?
专题介绍:R是一种广泛用于数据分析和统计计算的强大语言,于上世纪90年代开始发展起来。得益于全世界众多 爱好者的无尽努力,大家继而开发出了一种基于R但优于R基本文本编辑器的R Studio(用户的界面体验更好)。也正是由于全世界越来越多的数据科学社区和用户对R包的慷慨贡献,让R语言在全球范围内越来越流行。其中一些R包,例如MASS,SparkR, ggplot2,使数据操作,可视化和计算功能越来越强大。R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX、Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R的学术性开发比较早,适合生物学和医学等学术学科的科研人员使用。
作者:Zoe Turner
原文链接:
https://nhsrcommunity.com/blog/how-r-changed-me-as-an-analyst/

我猜想有很多关于R语言的博客和R语言为什么如此伟大呢?
-
它是免费的。
-
它是开源的。
-
它有一个伟大的社区。
-
它是可重复性的。
你当然可以在Twitter (#rstats)上读到R能做什么,但是R对你能够做什么?尤其是作为一名NHS或社会福利机构的分析师。【需要加入R语言群,请添加我的微信luqin360】
学习点…
回到2018年4月,当NHS-R社区在利兹开设第一个R课程介绍时,我对它唯一的了解来自于edX上的一个免费的在线基础R课程,我并没有真正理解它,也没有完成它。对我来说,在线学习就像回到学校一样。我得到了正确的答案,感觉很好,继续前进,然后很快就忘记了这一切。在NHS-R课程结束后,我尝试使用dplyr包,尝试运行许多别人的脚本,但通常都以失败而告终。那是一段令人沮丧的时间,任务交付缓慢,令人困惑。当事情进展顺利时,我不知道为什么,而且我常常想知道这是怎么回事情,尤其是因为我可以在熟悉的程序中做同样的事情。
后见之明是件好事,我现在可以看到我的挫折不仅仅是一次困惑,而是可以分解为我如何使用这些“熟悉的程序”,即:
-
SQL用于数据工程
-
Excel用于数据可视化
虽然我仍然使用(和使用)SQL来获取数据,但我将其复制到Excel中,然后将其加载到R中;一旦加载完毕,我就会意识到我需要对不需要的东西进行分组、计数或删除,而回到SQL、复制到Excel,然后再加载似乎太冗长了。
在R中可视化的第二个挫折是无法在R中复制Excel图表的外观:得到相同的颜色、相同的字体大小标题等等。我还没有完全解决这个问题,但正是在这里,我意识到R的价值不在于让它看起来像Excel,而是它可以做的比Excel多得多。我需要开始思考我应该可视化什么以及如何去做。
分享方法
在NHS工作的这段时间里,我学会了对数据保持谨慎——甚至是保护。但这导致了对分享技术知识的错误恐惧,而分享技术知识从来都不是有意识的事情,事情就是这样。然而,R有分享的名声,这导致了分享的期望。这不仅是在你自己的团队或组织内部,它甚至可以是整个世界。
作为分享Excel方法更困难的一个例子,我之前使用MATCH和INDEX构建了一个Excel电子表格基准测试,这样条形图就会自动为我工作的组织上色,并将条形图从大到小排序。这是一项需要花费大量精力来自动化的任务,完成时看起来很简单,但在很大程度上依赖于数据位于正确的单元格中,否则它就会崩溃。
只要用新的一年的数据更新它就会非常小心,所以我从来没有想过要写出方法来分享。把它写出来需要描述数据的位置、公式的作用以及位之间的联系。这是一项艰巨的任务,如果你不打算分享,这是不必要的——因为没有必要分享,所以我没有。
都是关于数据的
从SQL到Excel的整个过程都是关于数据的,例如 它是如何加入的以及它的计数。为了“正好”获得数据,它通常需要许多问题的灵巧解决方案,以至于我现在意识到,它消耗了太多的思考时间,因此考虑到为什么这样做的动力通常很少了?最好的事情,如何从数据中获取更多含义?
如果我拿起别人的脚本或Excel文档来排序基准数据,那么我花在改进而不是构建上的时间可能会更多。在一个完美的世界里,我会反馈我所做的事情,并分享任何改进或更正。
但是R能做SQL和Excel不能做的事情吗?
作为一个非常简单的例子,考虑创建一个中值平均值。
在Excel中,使用公式 MEDIAN()相当容易,但要使它具有动态性(这样,如果添加更多数据,它就会自动更新),公式就会变得复杂得多。这里有一个页面解释了它是如何做到的:
https://www.extendoffice.com/documents/excel/2611-excel-average-dynamic-range.html
有很多图形用来描述如何做你会注意到这是平均值而不是中值。
在SQL中,创建中位数可以通过多种方式解决:
https://stackoverflow.com/questions/1342898/function-to-calculate-median-in-sql-server
有204个例子可以解决这个问题!我没有把它讲完,因为当R可以做这个的时候,它不需要太多必要的思考……
median(table$column)
这个简单的东西去掉了所有其他不可避免的必要思考,找出得到中位数的最佳方法,然后必须检查它是否正确。虽然这在Excel中可能很简单,但我知道我犯了错误,而且我不得不重复这个练习的次数比我愿意承认的还要多,而且在Excel中这么做涉及到很多步骤,每个步骤都需要检查。所有这些都耗尽了集中思考的宝贵资源。由于R的运算速度如此之快,而且可靠,我现在有时间考虑中位数是否真的是正确的,特别是在“我们一直都是这样做的”的情况下。然后我可以思考它告诉我什么;它在增加/减少吗?为什么?还有其他数据可以解释这一变化吗?
与任何优秀的分析或编码一样,在开始时投入的时间都是有回报的。以重新排序的条形图为例,花几天时间使其正确,使其具有交互性,吸引用户。但是Excel仍然需要思考和时间检查,而R不需要;一旦它被编码,就这样。这就是分析师应该在的位置,工作完成后的空间。这就是你可以考虑分析本身的地方;是足够的吗?它告诉你什么?你还能看到什么?虽然我的工作头衔中有分析师已经有很长一段时间了,但这就是分析的全部内容,而且我现在意识到,我一直没有这么做,因为我的“思考时间”已经用在其他地方了。
公众号推荐:数据人才(ID:datarencai)
(一个帮助数据人才找工作的公众号,
也分享数据人才学习和生活的有趣事情。)
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!