初学者的R课程的结构
我意识到这是一个问题,可能不会有一个最好的答案,并可能是封闭的,但我认为这可能会得到一些非常有用的答案,所以也许它可以转化为CW。
假设你必须授予R课程来完成初学者,并且你有时间这么做,所以你需要在你强调的方面做出select。 这是伟大的,年轻的天真的心灵弯曲我们的意志! 但是我们怎么做呢?
我们如何才能最好地为绝对初学者build立一个R课程,以便他们成为R的高效用户。我们希望他们做一切正确,高效的工作,当然我们希望他们能够把事情放在第一位。 我想到的一些问题是:
- 缩进和使用适当的编码风格非常重要。 这应该是第一件事? 甚至在看如何分配对象之前?
- 循环vs适用vsvector化,你最先强调什么? 我认为循环很容易学习和简单明了,以至于先强调一下,它们可能不会产生非常高效的代码,但它们能够使事情顺利进行。 然后,立即强调vector化可能会使它们从长远来看更有效率。
- 让他们从一开始就使用RStudio?
- 什么是一个很好的命令来介绍的东西?
在短期课程中,你想做的第一件事就是让学生感兴趣并且有动力 – 你可以在3-4小时内传达很less的信息,但是你可以激励你的学生学习更多。 我build议你select一个你的社区感兴趣的话题,并向他们展示R如何帮助他们在这个领域踢球。 无情地削减 – 你想知道从不了解R的绝对最小path,能够做一些有用的事情,让你的学生说“哇,这很酷”。 对于我,我使用graphics – 在3小时内,您可以教授ggplot2(散点图,直方图,美学和刻面)的基础知识,为学生提供一个强大的数据探索工具包。
我会推荐使用RStudio。 我不会推荐讨论代码风格,vector化,甚至可能是循环。
重申别人提到的观点:
1)不要教R教“解决一些问题”,并帮助他们用R来做到这一点。
2)不要试图用你自己或别人能用R做的事情来expression他们的感受。
3)通道一点凯西塞拉利昂 。 最终目标不是要在3-4小时内熟练掌握这门课程。 最终目标是帮助class级踢一屁股,感觉R会帮助他们在未来踢更多的屁股。 它们赋予R的价值将是他们可以想象未来踢的所有屁股的净现值。 我很确定有一个R包来计算屁股踢的净现值。
+1为哈德利的答案。 我完全同意:动机是关键。 而这一切都可以在几个小时内完成。 这就像显示胖孩子如何减肥。 有很多方法可以做到这一点。 在3个小时的时间里,他们中的任何一个都不会失去显着的体重,但是你可以向他们展示减肥的乐趣,每个人都必须从那里继续自己的工作。 这就是说,我认为重点是重要的,但你应该向他们展示:
显示他们的天空是极限:显示stockplot或web ggplot2例如,显示一个小的数据库连接的东西,例如RMySQL(不详细),显示他们ggplot2。 你也可以简单地展示Sweave,这对于那些以经验硕士论文为目标的学生特别有意思。
是的,使用RStudio +1。 它有很好的帮助和自动完成,他们最近甚至改进了(例如,大括号匹配被添加)。 这也是一个很好的例子,说明R是一个与SPSS或STATA相比的例子。 你应该提到你build立和改善你自己的工作环境。 这不是一个程序,而是一个包。 您可以select编辑器,graphics包,存储数据的方式等等。 这可能是显而易见的,但可能会令初学者感到震惊。
这就是说,select一个像哈德利说的话题去做吧。 基本上我只是想用一点时间来概述无尽的可能性。
这是一个关于程序员的相关讨论,之前是SO,但是被迁移了。 我们讨论如何在学术机构上推销R。 当然也有一些争论在学生之间进行游说。
或者只是在youtube上显示Hadley的video,然后去喝咖啡。
这个答案很晚,但我意识到这可能会有所帮助。
我已经向R介绍了一些人,特别是程序员,但是如果我只是向他们展示线性回归,表格,一些情节等等,他们就会成为一个精神维基百科条目。他们观察,他们听,以后什么也不做 – 毕竟,Excel仍然适用于他们。
当我向他们展示iplots
和泰坦尼克号的数据集时,他们吸收了一切。 他们开始将示例代码复制到他们的计算机上。 不久之后,他们已经开始ihist
, summary
和许多其他的function。
最好的方法是让他们自己学习。
iplots
网站似乎不再显示泰坦尼克号的例子,而是select了Cars93: http ://rosuda.org/iplots/。
值得一提的是,我所指导的更好的演示的顿悟是教导观众如何提问数据。 稍后有一些视觉见解,他们非常渴望了解更多。 看到成年人不能静坐,因为他们冒着想法去尝试。 在这一点上他们就是你的手中的腻子。
假设没有编程知识,我刚刚给R讲经济学的研究生。
我的内容:
- 讨论数据分析工具
- 文本编辑器
- 得到R
- R语言基础:vector和matrix
- 应用程序:制定您自己的OLS估算器
- lm函数和公式展示
- t检验和f检验
- 最大可能性:probit
- 安装软件包和CRAN视图
- 得到帮助
- build议读数
我认为涵盖一些语言基础是相当重要的,但是我没有达到一些人留言的一半,可能会认为“这太多了…我不会用这个”。 在未来的机会上,我会把语言基础转到“中间”阶段,并对介绍进行格式化。 更多的教程作为销售这种技术的展示,然后明确下一步他们应该阅读什么,如果他们是“在”。 在严格正确和有趣之间进行权衡(除非编程语言细节对公众有利)。
一旦开始谈论语言细节,很难确定何时应该停止。 一旦你给出了vector和matrix,你应该提到一些下标,一些data.frame,它让你谈论列表,以及如何在matrix和data.frame之间进行转换…这很容易覆盖2个小时。 对于一个绝对的初学者来说这不是一个性感的销售点!
我没有,也不会在演示中使用Rstudio。 如果“传统的”terminal/文本编辑器对他们来说太抽象了,那R也是抽象的。 一个奇特的窗口环境不会有太大的改变。 但是要提到有这样的接口。 还要提到R是跨平台的,并且讨论平台之间的差异/相似性,即使> 90%的受众使用Windows。
+1给哈德利; 我绝对推荐ggplot或wordcloud的哇因素,但肯定给他们一些具体的,他们可以做的。 4个小时的ggplot没有任何R背景会对初学者非常困惑。
也许向他们展示如何从ggplot制作一个特定types的绘图。 你可以教给他们关于数据框架的基本知识,以及如何使用它,然后进行一个简单的分析,让他们做一个简单而有吸引力的情节。 我会告诉他们这些情节是如何定制的,但我会把重点放在一个简单的例子上,而不是让他们迷失在绝大多数的选项中。 在R中绘图的可定制性对于初学用户来说可能是非常艰巨的!
虽然编码风格和高效的代码很重要,但他们不会记住单个工作坊中的那些东西。 之前学过这样的教程,我记得教训很less,当信息太多的时候很快就迷失了。 给他们一个很好的资源清单(尤其是免费的!),如果你有兴趣,他们可以自己继续。