初学者R课程的结构

时间:2011-06-20 12:36:27

标签: r

我意识到这个问题可能没有一个最好的答案,并且它可能会被关闭,但我认为这可能会得到一些非常有用的答案,所以也许它可以变成CW。

假设您必须提供R课程以完成初学者,并且您只有有限的时间这样做,因此您需要在所强调的内容中做出选择。这是伟大的,年轻无辜的思想屈服于我们的意志!但是我们怎么做呢?

我们如何才能为绝对的初学者设置最佳R课程,以便他们成为R的有效用户。我们希望他们能够做到一切正确和有效,但当然我们希望他们能够做到最好的事情更多。我想到的一些问题是:

  • 缩进和使用正确的编码样式非常重要。这应该是第一件事吗?甚至在研究如何分配对象之前呢?
  • 循环vs适用于矢量化,你首先强调什么?我认为循环很容易学习和直接,首先要强调的是,它们可能不会产生非常有效的代码但是它们能够让事情变得有效!然后,从长远来看,立即强调矢量化可能会使它们更有效率。
  • 让他们从一开始就使用RStudio?
  • 介绍东西会有什么好处?

6 个答案:

答案 0 :(得分:44)

在任何短期课程中,您想要做的第一件事就是让学生感兴趣并有动力 - 您可以在3-4小时内传达非常少的信息,但您可以激励学生学习更多知识。我建议您选择一个感兴趣的话题给您的社区,并向他们展示R如何帮助他们在该领域发挥作用。无情地削减 - 你想要找出从对R一无所知到能够做一些有用的事情的绝对最小路径,让你的学生说“哇,这很酷”的东西。对我来说,我使用图形 - 在3小时内你可以教授ggplot2(散点图,直方图,美学和刻面)的基础知识,为学生提供强大的数据探索工具包。

我建议使用RStudio。我不建议谈论代码风格,矢量化,甚至可能是循环。

答案 1 :(得分:31)

重申其他人提到的观点:

1)不要教R.教“解决一些问题”并帮助他们用R来做到这一点。

2)不要试图用他们或其他人可以用R做的事来让他们惊叹。哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇

3)频道点Kathy Sierra。最终目标不是让课程在3-4小时内精通。最终的目标是帮助班级踢一点屁股,感觉R将来会帮助他们踢更多的屁股。他们归属于R的价值将是他们可以想象将来踢的所有屁股的净现值。我很确定有一个用于计算屁股踢的净现值的R包。

答案 2 :(得分:14)

+1为hadley的回答。我完全同意:动机是关键。这就是你能在几个小时内完成的一切。这就像向胖孩子展示如何减肥一样。有很多方法可以做到这一点。在3小时的训练中,他们中的任何一个都不会失去显着的体重,但你可以向他们展示减肥的乐趣,每个人都必须继续自己的工作。话虽如此,我认为聚焦很重要,但你应该向他们展示:

向他们展示天空是极限:例如,显示stockplotweb ggplot2,显示一些小数据库连接内容,例如RMySQL(没有详细介绍),向他们展示ggplot2。您还可以简要地展示Sweave,这对于针对经验性硕士论文的学生来说特别有趣。

是的,使用RStudio的+1。它具有出色的帮助和自动完成功能,最近他们甚至进行了改进(例如增加了支架匹配)。它也是一个很好的例子,说明R与SPSS或STATA相比如何。您应该提到您设置并改善自己的工作环境。它不是一个程序,而是一个程序包。您可以选择编辑器,图形包,存储数据的方式等等。这对你来说可能是显而易见的,但可能会让初学者惊叹。

话虽这么说,选择像哈德利这样的话题,然后去做吧。基本上我只是想用一点时间来概述无限的可能性。

Here's a related discussion on programmer's之前就已经过了,但是已经迁移了。我们讨论如何在学术机构中推广R.当然,一些论点也适用于学生之间的游说。

或者只是在youtube上显示Hadley的视频,然后去喝咖啡。

答案 3 :(得分:8)

这个答案很晚,但我意识到这可能会有所帮助。

我已经向R介绍了一些人,特别是程序员,但如果我只是向他们展示线性回归,制表,一些情节等,它就成了精神维基百科条目。他们看,他们听,他们不做之后的任何事情 - 毕竟,Excel仍然适用于他们。

当我向他们展示iplots和泰坦尼克号数据集时,他们会吸收所有内容。他们开始将示例代码复制到他们的计算机上。不久之后,他们开始探究loadhist(和ihist),glmsummary以及许多其他功能。

最好让他们感到惊讶,以便他们想要自己学习。

iplots网站似乎不再显示泰坦尼克号示例,而是选择使用Cars93:http://rosuda.org/iplots/

对于它的价值,我所引导的更好的演示的顿悟是教会观众如何提问数据的问题。稍后会有一些视觉见解,他们非常渴望了解更多信息。很高兴看到那些不能坐以待毙的成年人,因为他们正在冒着尝试尝试的想法。那时候他们就是腻子。

答案 4 :(得分:1)

我刚刚向经济学研究生提供了关于R的教程,假设没有编程方面的先验知识。

我的内容:

  • 关于数据分析工具的讨论
  • 的文本编辑器
  • 得到R
  • R语言基础:向量和矩阵
  • 申请:制定您自己的OLS估算员
  • lm功能和公式展示
  • t-test和f-test
  • 最大可能性:probit
  • 安装包和CRAN视图
  • 获得帮助
  • 建议阅读

我认为覆盖一些语言基础知识非常重要,但我没有达到很多人离开演示文稿的一半主题,可能会认为“这太多了......我不会用这个”。在未来的机会中,我会将语言基础转移到“中间”会话,并格式化介绍。教程更多是作为销售这项技术的展示,然后明确他们应该阅读下一步,如果他们“在”。在严格正确和有趣之间进行权衡(除非您的公众对编程语言细节感兴趣)。

一旦你开始谈论语言细节,就很难确定何时应该停止。一旦你给了向量和矩阵,你应该提到一些下标,一些data.frame,它可以让你谈论列表,以及如何在矩阵和data.frame之间进行转换......这很容易涵盖2个小时。对于一个绝对的初学者来说,这不是一个性感的销售推销!

我没有也不会在演示文稿中使用Rstudio。如果“传统”终端/文本编辑器对于它们而言过于抽象,那么R对它们来说太抽象了。一个奇特的窗口环境不会改变太多。但请注意,有这样的接口。还要提一下R是跨平台的,并讨论平台之间的差异/相似之处,即使> 90%的受众使用Windows。

答案 5 :(得分:0)

+1到hadley;我绝对推荐使用ggplot或wordcloud的令人惊叹的因素,但绝对能给他们一些具体的东西,他们也能做到。没有任何R背景的4小时ggplot对初学者来说会非常困惑。

也许向他们展示如何从ggplot制作特定类型的情节。您可以向他们讲授data.frame是什么以及如何使用它的基础知识,然后执行简单的分析并让它们制作一个简单但有吸引力的情节。我会告诉他们这些情节是如何自定义的,但我会专注于一个简单的例子,而不是让他们迷失在绝大多数选项中。 R中绘图的可自定义性对初学者来说非常艰巨!

虽然编码风格和高效代码很重要,但他们不会在单个研讨会上记住这些内容。以前学过这样的教程后,我记得课程中的语法很少,而且当信息太多时很快就迷路了。给他们一份资源清单(特别是免费资源!)的好讲义,如果你激起他们的兴趣,他们可以自己继续。