入门 | 一小时向非程序员介绍 R 编程语言

2023-06-19 0 900

QQ添加CDA为好友(ID:joinlearn),拉你入500人统计数据策略师沟通交流群,点选可查看CDA统计数据策略师沟通交流群规范与社会福利,期待你来~我姐姐正在念大三,修读人类学。她刚刚签了说行学年一份极好的执行官组织工作,对方告诉她组织工作上要加进 R C语言。她让我在春假时Chom她,我欣然了。还有什么比这更好的方式来打发印第安纳的冬天呢?[注1]问题是:在原订教她的那天,他们俩都没事的时间只有两个半小时。哎!但是我还是接受了这个挑战,用两个半小时向我的政治学家姐姐如是说R。下面就是我所做的事情。我没有事先做课外,而且肯定犯了些错误,忽略了中心思想,折腾于用例。但姐姐给我的意见反馈是十分好(我确实对他们的“一半小时学会R”理念十分钟爱)(1)浏览R和RStudio我对RStudio的印象极好,对新手来说,它既方便又很有帮助,对从业者也很管用。尤其对新手:滑鼠对准-点选式(point-and-click)的快捷键十分棒,组织工作区液晶对建立起对R自然环境的基本概念也十分管用。我甚至都不用再花心力向我姐姐如是说R预设的软件系统开发自然环境——我马上就让她浏览了RStudio,但是你仍然需要浏览普通版的R。浏览后,我意识到r-project.org网站真应该在设计上进行大修补,因为:(a)它不够漂亮(b)如果你不知道什么是“CRAN快照”,浏览R将是一件容易把人吓傻的事。(2)控制液晶和脚本准备好后,他们做的第二件事就是在控制液晶中点选如下首尾标识符:

入门 | 一小时向非程序员介绍 R 编程语言

这并非纯粹的“Hello World”,但它阐释了一些基本概念,比如”表达式”、”变量”和”解释器”[注2]。接着,我让姐姐在两个RJAVA文档中留存了上面那首尾标识符(我认为,在新手开始采用一门语言时就天主教会他们如何正确地把标识符留存在JAVA文档中是十分重要的)。然后,我教她怎么用Cmd-Enter快捷方式(翻译者注:这是Mac OS的操作方法。在PC中,对应的快捷方式是Ctrl+Enter)在控制液晶中执行标识符。在解释这些内容的过程中,我意识到”控制液晶”和”JAVA”这类名词比较艰涩,因此我尽可能给出它们的明确的定义。我也不得不小心地采用那些涵义确凿的词而非”REPL”或”prompt”这类词语(3)注解

入门 | 一小时向非程序员介绍 R 编程语言

(4)绘图JAVA、注解和控制液晶可能有点乏味,因此到了这一步,该是从绘图中寻找些快感的时候了!这是他们绘出的一张图:

入门 | 一小时向非程序员介绍 R 编程语言

教我姐姐理解这段标识符涉及解释什么是函数(因为rnorm和hist都是函数)、什么是函数的实参,以及为什么你可以通过名字引用实参却不一定非得这样做。我还教她怎么留存两个绘图——借助绘图窗口中方便的“Export”按钮,在RStudio中留存图形十分容易。(5)获得帮助

入门 | 一小时向非程序员介绍 R 编程语言

考虑到查函数文档对非开发人员来说不太容易,这本来或许不是两个正确的策略。我考虑过强调google技巧的重要性(我在研究生院学到的最管用的东西),或者如是说StackOverFlow和R-help,但最后还是决定讲解官方的文档系统。”在R中我该怎么做X这件事”是新手最常见的问题之一,我认为这个问题的答案可能应该是”采用函数Y( )”——因此重要的是能够搞清楚如何采用函数Y( )。在我看来,新手最常见的另两个问题是”我遇到了出错信息Z,怎么修正它?”。为解决这个问题,我演示一些常见的错误(对象未找到,意外的<X>常量,等等)并解释了它们的涵义。(6)统计数据类型查看帮助文档让我想起文档中经常会提及某个函数的实参必须是某个特定的类型,因此他们或许应该讨论一下统计数据类型。我如是说了:向量

入门 | 一小时向非程序员介绍 R 编程语言

矩阵

入门 | 一小时向非程序员介绍 R 编程语言

统计数据框(dataframe)

入门 | 一小时向非程序员介绍 R 编程语言

就这样,他们借助实例讨论了一些统计数据类型,并顺带着学习了其他一些重要的内容,像怎么确定向量、什么是组织工作目录,以及怎样读入统计数据文档。(7)探索性统计数据分析一旦你读入了两个统计数据集,事情就开始变得有趣了。他们从中学习了一大堆东西,像怎么做基本的表格、遇到缺失统计数据如何处理,以及怎么拟合两个简单的线性模型。这部分的内容相当有趣,以至于我姐姐开始主导学习过程了:不再是我说“我要教你如何做什么”,而是她主动问“嗯,他们能画两个散点图吗?”或“你觉得他们可以把最优拟合直线放到那个图上吗?”我真为此而感到高兴——我希望这意味着她已全身心投入并乐在其中。

入门 | 一小时向非程序员介绍 R 编程语言

他们还进一步学习了绘图,像怎么作出好的直方图,以及怎么在回归直线上叠加散点图。

1 hist(wages$wage, xlab = “hourly wage”, main = “wages in our dataset”, col = “purple”)

2 plot(wages$age, wages$workyr, xlab = “age”, ylab=”years worked”, main = “age vs. years worked”)

3 abline(lm(wages$workyr ~ wages$age), col=”red”, lwd = 2)

好了,时间到。我遗漏了些什么?哪些事能做得更好?我事后想到的有:用[]取子集. 这是个关键知识点。它可以应用于我所如是说的所有统计数据类型,而且极为管用。我真希望当时有时间让我姐姐做两个,比如只包含女性的工资直方图编程相关的东西:循环、if语句、用户自定义函数,等等。但是我觉得不教这些东西也没问题——考虑到受众,我是把R当作两个统计数据分析自然环境而非一种C语言来教授。留存.rda文档和/或组织工作区安装和载入包其他统计数据类(比如列表)其他(更好的?)帮助资源/提示/技巧最后一点感想总的来说,在一半小时内如是说R让我收获了快感,而且我认为(希望?)我姐姐也是如此。临别时我又给了她一些资料:这个,这个和这个,这些资料我都不是十分熟悉——但我知道,要想能够用R分析实际统计数据,所需的时间远大于在我这儿的两个半小时。我相信我已经覆盖了大部分基础知识,我姐姐也觉得这对她十分有帮助。我很乐意听各位来谈谈你是如何应对”一半小时内向非开发人员如是说R”这个挑战的。脚注注1. 即便对印第安纳来说,天气也真的太冷了。温度已在华氏0度(翻译者注:摄氏-17度)左右徘徊了两个月之久。星期一的最高温度是华氏-12度(翻译者注:摄氏-24度)注2.你可能注意到了,我用“=”来表达式,而且把这个习惯传给了我姐姐。我考虑过这个问题并坚持这一用法,“<-”要多敲键盘,我发现它唯一管用的地方只是当我在system.time函数调用内进行表达式。end

点选可查看CDA统计数据策略师沟通交流群规范与社会福利

入门 | 一小时向非程序员介绍 R 编程语言

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务