学习 R. 从哪里开始? [关闭]
Posted
技术标签:
【中文标题】学习 R. 从哪里开始? [关闭]【英文标题】:Learning R. Where does one Start? [closed] 【发布时间】:2011-03-23 11:50:29 【问题描述】:我已经使用 R 一年多了,这是一次成功的冒险。但是很多时候,我发现有些东西我无法弄清楚,因为我不知道如何找到它或它的例子。
堆栈溢出,
您能否推荐一种学习 R 的途径,该途径为人们提供工具集来解决统计性质的问题?
互联网上有丰富的知识,介于 r-project 网站和邮件列表之间,但它似乎“无处不在”,而当您真正寻找它时却无处可寻。
例如,当我第一次开始使用 R 时,我经历了“R 简介”。然后我阅读了语言定义(显然没有深入了解)。但是每次我在 *** 上提出问题时,我都会看到一些新的坏蛋功能,它可以在短期内解决我所有的问题。我的问题是,你是怎么知道这些功能首先存在的?以及如何去寻找它们?据推测,您阅读了一些内容或发现了一些资源,这些资源使您的学习绕道到了曲线的指数部分。它以前如何?
显然,R 作为统计工具的功能是广泛的。出于我自己的目的,我主要处理经济或金融数据。因此,考虑到这一点的答案将是最有帮助的。
【问题讨论】:
install.packages("sos"); library(sos); findFn("<some new badass function>")
可能会有所帮助... RSeek、SO、R 博主、RSS 提要、邮件列表...剩下的就是耐心的问题了。祝你好运!
R(和类似的东西)需要一段时间才能“学习”的一个原因是它是一种真正的语言。就像学习任何语言一样,一个人需要一段时间才能达到“精通”,而一个人从未真正完成过学习。它越像自然语言,就越真实。对于像 R 这样的语言,我很想看到一本采用这种教学方法的书——比如“R 与 Michel Thomas”。
【参考方案1】:
完全有偏见的回应:了解plyr
、reshape2
和ggplot2
。它们将满足您 90% 的数据操作和可视化需求。所有三个包都具有一致的数据哲学(ggplot2 书涉及),并且设计为一致且更易于
学习。
与其学习许多专门的函数,我真的鼓励你学习可以灵活组合以解决广泛问题的简单函数。这就是 plyr 为数据操作而努力做的事情,也是 ggplot2 努力为可视化做的事情。这确实意味着您需要提前投入更多时间来了解一些基本理论,但我相信从长远来看它会带来丰厚的回报。
【讨论】:
所以我是所有这些包的忠实粉丝并且完全同意。使用这个和包来获取你的数据(Rmysql 类型的东西或只是 read.csv())你几乎可以做任何事情。 我完全同意,尽管您已经为您的产品做广告... =) 谦虚,但确实,我所做的几乎所有事情都涉及其中一个包...... 哈德利的包裹+1。我真的刚开始学习这三个,但我已经可以看出它有很大帮助并增加了你的灵活性。另外,我建议也考虑一下 R 之外的东西。 R 最大的优势之一是它与其他语言交互的灵活性。无论您已经知道什么语言都可能对您有所帮助。比如我已经对 SQL 有一点了解,所以 RMySQL 加上 MySQL 中的一些数据杂耍帮助我上手快了一点。 +1,因为这些软件包非常适合分析数据帧,但不要忘记 R 的功能远不止于此。 R 的非数据框使用包括运行蒙特卡罗模拟,您确实需要了解基本功能才能做好。【参考方案2】:我是如何学习 R 的。
R 资源:
要学习 R,最重要的资源是 google。搜索:“TOPIC r-project”、“TOPIC filetype:r”或“TOPIC site:nabble.com”。
其次,查看大多数软件包提供的示例代码。转到“http://bm2.genes.nig.ac.jp/”,搜索一个主题并查看示例代码。运行它并调整它,这样您通常可以解决部分问题。
第三:r-help 邮件列表。阅读帖子,一遍又一遍地询问基本问题。如果您遇到问题并且完全陷入困境,请在邮件列表中提出问题。
最后,查看 R 包的源代码。这是最难的部分。如果您可以根据需要更改代码,那么您已经掌握了 R ;-)
一些提示:
R 具有陡峭的学习曲线。这是一个功能 ;-) ,它旨在解决高级问题,最终你比使用 R 的替代品更快。
了解与您的问题相关的每个 R 包和函数。 R 的优势在于有很多可用的软件包(我认为大约 2000 年)。通常总有一个更适合或已经解决您的问题的软件包。 (有些帮助页面写得不好,很难理解——我已经习惯了)
R 书籍对学习 R 没有帮助。是的,这是真的。如果您是专业的程序员和专业的统计学家,您不需要任何关于 R 的书。(唯一的例外是 Hadley Wickham 的 ggplot2 书)。如果您不是,请学习一般和/或高级统计编程。
一些 R 包有已知的错误,没有人会修复(包所有者离开大学等)。只是一个警告,如果您正在寻找代码中的错误并且错误位于 R 包中,这可能会很棘手。
【讨论】:
不确定我是否同意“R 书籍对学习 R 没有帮助”。取决于书和学习者。【参考方案3】:我将从这个开始:
我的问题是,您最初是如何知道这些功能存在的?
简单 - 我们试图解决类似的问题并遇到了该功能。它要么适合我们的需求,要么不适合我们的需求,但我们现在知道它就在那里。我个人使用 R 的次数不多,但您所描述的是每种编程语言的学习曲线。首先,您学习“语法”,即您可以做什么。然后你尝试做某事。你发现你做不到。
在那个阶段,程序员有很多选择。我个人做什么?要看。我将尝试查找该包/标题/库/任何成员函数,以查看是否适合我的需要。我可能会用谷歌搜索它,因为除非你真的在突破界限,否则某个地方的某个人可能已经尝试过但没有成功,并且他们的问题得到了回答。如果您正在突破界限,那么某个地方的某个人之前可能已经尝试过并且失败了,但没有得到任何答案。我可能会尝试一两个论坛,看看会发生什么。我个人不太使用 IRC,但这是另一种选择,邮件列表也是如此,具体取决于问题的专业程度。
我的计算机上还有一个文件夹,里面装满了我根据问题进行搜索的书籍,还有一个我浏览/学习的小型书籍图书馆,其中通常包含实用的、不太实用但适应性强的示例.
我唯一的评论是尝试阅读语言规范不太可能对初学者很有用。你不会完全理解这意味着什么,因为你还没有突破界限并尝试过一些事情。例如,C 的新手可能会尝试这样:
char c = '7';
int x = (int) c;
将字符“7”转换为整数形式。在您了解字符和 ASCII 的工作原理之前,这并不是一个糟糕的思考过程,然后您就会明白为什么上面的内容不能满足您的需求。
简而言之,我认为这将成为学习过程的一部分,而且我认为你不能把它剪得更短。安慰就像任何研究一样,您做的越多,您就越知道在哪里寻找以及在各个社区提出什么问题。
【讨论】:
我同意你的看法。花时间研究一个人的问题是最好的学习方式。但我也相信,肯定有其他人创造的最佳实践和资源可以提供实质性帮助 - 当你知道在哪里寻找时:) 这就是这个问题的目的。【参考方案4】:我做的一件事是关注关于 SO (https://***.com/feeds/tag/r) 的 R 问题的 RSS 提要。然后我可以浏览其他人的提问/回答。
如果我认为我会使用某个特定的问题/答案,我通常会喜欢它,或者将要点记入我的笔记本软件 (OneNote),有时我什至会自己尝试问题/答案。
编辑:
我还推荐 Patrick Burn 的书 R-Inferno。这与其说是一本培训书,不如说是描述了帕特里克(迄今为止)发现的所有问题和令人惊叹的时刻。
【讨论】:
【参考方案5】:有一本您可能感兴趣的免费书籍:Introduction to Probability and Statistics Using R
【讨论】:
以及最近发布的时间(2010 年 7 月 28 日)。谢谢你,我会花时间审查它。 然而,最好的部分是:它是 GPL 许可的,您甚至可以下载带有 eps/pdf 图形的 LyX/tex 文件。 (我在 Gregor Gorjanc 的博客上看到了,如果你订阅了 R-bloggers RSS,你可能会在它们很热的时候得到这些东西)【参考方案6】:这里是学习 R 的一个很好的资源列表:
https://stats.stackexchange.com/questions/138/resources-for-learning-r
此外,该网站总体上是一个很好的资源。
总的来说,我会说遵循邮件列表或帮助列表是我找到的学习新事物的最佳方式。 (那个和“R杂志”:http://www.r-bloggers.com)
【讨论】:
【参考方案7】:学习 RODBC 包以直接与 Oracle 数据交互对我的工作产生了重大影响。当我将 Oracle 数据直接提取到 R 中并仅用几行代码绘制出图表时,我的老板很惊讶。尝试在 Excel 中执行此操作!
故事的寓意,学习如何在 R 中提取数据并对其进行操作。然后转向一些更酷的东西,比如 ggplot。
【讨论】:
【参考方案8】:我可以推荐Penn University's Introductory Course on R。
仅 ggplot 章节就值得一读 - 我发现 ggplot 非常令人困惑,但这是一个很好的解释。
【讨论】:
【参考方案9】:对我学习帮助最大的书是The Art of R Programming。很多编程书都可能枯燥无味。由于 R 通常是编程的入口点,因此材料的声音与学生产生共鸣是很重要的。那本书对我就是这样做的。声音很随意,我很喜欢。
【讨论】:
【参考方案10】:一些有趣的链接:
简介、链接和示例:http://manuals.bioinformatics.ucr.edu/home/programming-in-r
大量文档:https://en.wikibooks.org/wiki/R_Programming
R论坛:http://r.789695.n4.nabble.com/
【讨论】:
【参考方案11】:[R] 标签常见问题解答,就在 *** 上,https://***.com/questions/tagged/r?sort=frequent 提供了许多可重复的示例,可以用来“边做边学”。
大多数问题都很常见,并且最终将成为您作为初学者必须查找的问题。常见问题解答还为各种功能和有用的软件包提供了高度了解(和经验丰富)的使用示例。
如果您是 R 新手,并且您更喜欢亲身实践的学习方法,则不应忽视常见问题解答作为潜在的学习资源。许多问题还围绕语言本身的范式提供了有用的讨论(向量化、工作流、调试只是几个例子)。
FAQ 中的几乎每个问题都值得作为新用户研究,因为它涉及的元素,就我自己而言,我希望在我最初提出这个问题时被指出。
仅举几个例子:
How to make a great R reproducible example Grouping functions (tapply, by, aggregate) and the *apply family Workflow for statistical analysis and report writing How to sort a dataframe by multiple column(s)? What is your favorite R debugging trick?【讨论】:
以上是关于学习 R. 从哪里开始? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章