我主张一种完全不同的方法。我看过R教程是从两个不同的角度讲授的:一种是构建块方法,向用户介绍R的基本概念;另一种是震撼人心的方法,向用户展示R的惊人功能,但留下了对如何做的了解相对较少。后者肯定会引起小学生更强烈的共鸣,但是在实际培养用户方面似乎没有人非常有效。
相反,我将在SPSS中执行一个常见且相对简单的任务,并逐步将其转换为R,而您则需要一点点假冒的天赋-例如,遵循西安市的出色建议,可以查找一些所需的功能,??
而不仅仅是从内存中调用正确的功能。您的新手几乎可以肯定会在学习R的同时转换现有流程,而不是从头开始编写它们-那么为什么不向他们确切展示您将如何处理呢?
一个很好的例子可能包括仅加载数据,执行一些描述性操作并弹出一些基本图。 lm()
可以非常非常简单,并产生他们可以理解的结果,并且可以将结果与SPSS输出进行比较,因此可能也很容易涵盖。
对于家庭作业,请他们采取行动以转换他们的简单流程之一,或者加载并浏览他们非常熟悉的数据集。给他们一些一对一的时间,找出问题出在哪里,然后在下一个会话中介绍更多示例转换。您列表中的概念将不可避免地出现(我敢打赌:因素与字符向量,相较于适用),然后您将有一个现实世界来覆盖它们。如果他们还没有提出(attach
),那么他们还不是真正需要的-如果这意味着您的新手早些时候(for
而不是apply
)编写了一些非惯用的代码,我看不出有什么害处。
这样,您的学生可以以与外语学生一样的方式进步(或者至少是我的方式):简单表达的粗略翻译引起了人们对更复杂表达的渴望,这引起了人们对语法的更深刻理解的渴望。 ,最终导致惯用语表达。不要太早跳到“语法”,也不要太担心教给他们他们不需要的东西,因为他们可能会忘记它。关于惯用语表达的温柔指针很棒(for
vs apply
),但主要的事情是让它们生成输出并自行探索。