学习R.从哪里开始?
我已经使用了R一年多一点,这是一个成功的冒险。 但是所有这些都经常发生,我发现有些东西是我不知道如何find它或者是它的一个例子。
堆栈溢出,
你能否推荐一种学习R的途径,提供一个可供其使用的工具集来解决统计性问题?
在互联网上有很多的知识,在r-project网站和邮件列表之间,但它似乎是“无处不在”,而且当你真正在寻找它的时候,它是无处不在的。
例如,当我刚开始使用R时,我经历了“Intro to R”。 然后,我读了语言定义(显然没有陷入)。 但是每当我问一个关于Stackoverflow的问题时,我都会遇到一些新的坏消息,这个消息在短期内是我所有问题的解决scheme。 我的问题是,你是如何知道这些function存在的呢? 那么如何find它们? 据推测,你读了一些东西,或者find了一些资源,把你的学习转移到曲线的指数部分。 它以前如何?
显然,R作为统计工具的function非常广泛。 为了我自己的目的,我主要使用经济或财务数据。 因此,考虑到这一点的答案将是最有帮助的。
完全有偏见的反应:学习plyr
, reshape2
和ggplot2
。 他们将覆盖90%的数据处理和可视化需求。 所有这三个软件包都有一个一致的数据哲学(ggplot2书所涉及的),并被devise为一致和易于学习。
我不是学习许多专门的function,而是鼓励您学习简单的function,这些function可以灵活组合以解决各种各样的问题。 这是plyr努力做的数据操作,以及ggplot2为可视化所做的努力。 这意味着你需要投入更多的时间来学习一些基本的理论,但是我相信,从长远来看,这将会带来丰厚的回报。
我的方式如何学习R.
R资源:
-
要学习R,最重要的资源是谷歌。 search“TOPIC r-project”,“TOPIC filetype:r”或“TOPIC site:nabble.com”。
-
其次,看看大多数软件包提供的示例代码。 请转到“ http://bm2.genes.nig.ac.jp/ ”,search一个主题并查看示例代码。 运行并适应它,这样你就可以经常解决你的部分问题。
-
第三:r-help邮件列表。 阅读post,基本问题一遍又一遍地被问到。 如果您遇到问题,并且完全卡住,请在邮件列表中提出问题。
-
最后,看一下R软件包的源代码。 这是最难的部分。 如果你可以根据你的需要改变代码,你已经掌握了R 😉
一些技巧:
-
R有一个陡峭的学习曲线。 这是一个function;-),它是为了解决高级问题而devise的,最终比使用R的替代方法要快。
-
了解与您的问题相关的每一个R包和function。 R的优势在于有这么多的软件包可用(2000年左右,我认为)。 通常总是有一个更适合或者已经解决了你的问题的软件包。 (一些帮助页面写得不好,很难理解 – 我已经习惯了)
-
R书对学习R没有帮助。是的,那是真的。 如果你是专家程序员和专家统计学家,你不需要任何有关R.的书(只有哈德利·韦翰的ggplot2书除外)。 如果你不是,一般学习编程和/或高级统计。
-
一些R包有已知的错误,没有人会修复(包所有者离开大学等)。 只是一个警告,如果您正在寻找代码中的错误,并且错误在R包中,这可能会非常棘手。
我将从这开始:
我的问题是,你是如何知道这些function存在的呢?
简单 – 我们试图解决类似的问题,并遇到这个function。 它适合或不适合我们的需求,但我们现在知道它在那里。 我没有亲自使用过R,但是你所描述的是每种编程语言的学习曲线。 首先,你学习“语法”,即你可以做什么。 然后你试着做点什么 你发现你不能。
在那个阶段,程序员有很多select。 我个人做什么? 依靠。 我会尝试查找包/标题/库/任何成员函数来查看是否符合我的需求。 我可能会这样做,因为除非你真的推开边界,否则某个地方的人可能已经尝试过,而且之前没有做到,而且他们的问题已经回答了。 如果你在推动边界,某个地方的人可能曾经尝试失败过,但没有得到任何答案。 我可能会尝试一个或两个论坛,看看会发生什么。 我个人不会使用IRC,但这是另一种select,就像邮件列表一样,取决于问题的特殊性。
我的计算机上还有一个文件夹,里面装满了我根据问题search的书籍,还有一些我从中学习的书籍库,它们通常包含实用的,不太适合的例子。
我唯一的意见是尝试阅读语言规范,作为初学者不太可能对你有很大的帮助。 你不会完全明白这是什么意思,因为你还没有推动界限,并尝试了一些东西。 例如,C中的新手可能会试试这个:
char c = '7'; int x = (int) c;
将字符“7”转换为整数forms。 在你理解字符和ASCII的工作方式之前,这不是一个糟糕的思考过程,那么你就会明白为什么上面不给你想要的东西。
总之,我认为这将成为学习过程的一部分,我认为你可以缩短这个过程。 这种安慰就像任何研究一样,你越是做得越多,你就会知道去哪里寻找什么样的问题,在不同的社区问什么问题。
我所做的一件事就是遵循SO上的R问题的RSS提要( https://stackoverflow.com/feeds/tag/r )。 然后我可以浏览其他人提出的问题/答案。
如果我想使用它,或者记下我的笔记本软件( OneNote )的重点,我经常会喜欢一个特定的问题/答案,偶尔我甚至会自己尝试问题/答案。
编辑:
我也会推荐Patrick Burn的书R-Inferno 。 这不是一本培训手册,而是帕特里克所发现的所有陷阱和时刻(到目前为止)的描述。
有一本您可能感兴趣的免费书籍: 使用R的概率和统计简介
这是一个很好的学习资源列表R:
https://stats.stackexchange.com/questions/138/resources-for-learning-r
另外,该网站一般是一个很好的资源。
一般来说,我会说,按照邮件列表或帮助列表是我发现学习新事物的最佳方式。 (那和“R杂志”: http : //www.r-bloggers.com )
学习RODBC包与Oracle数据直接交互对我的工作产生了巨大的影响。 当我将Oracle数据直接提取到R中,并且只用几行代码启动一个图时,我的上司感到非常惊讶。 尝试在Excel中这样做!
道德的故事,学习如何拉动数据并在R内进行操作。然后转移到ggplot等更酷的东西。
我可以推荐宾夕法尼亚大学的R入门课程 。
单单ggplot章节值得一读 – 我发现ggplot很混乱,但这是一个很好的解释。
帮助我学习最多的书是“R编程的艺术” 。 很多编程书籍都可能是干的。 由于R通常是编程的切入点,因此材料的声音与学生共鸣非常重要。 那本书和我一样。 声音很随意,我喜欢。
一些有趣的链接:
介绍,链接和例子: http : //manuals.bioinformatics.ucr.edu/home/programming-in-r
大量的文档: http : //en.wikibooks.org/wiki/R_Programming
R论坛: http : //r.789695.n4.nabble.com/
[R]标签常见问题,就在这里的Stackoverflow, https: //stackoverflow.com/questions/tagged/r ? sort = faq & pagesize =50提供了许多可重复的例子,可以用来“边做边学”。
大部分的问题是非常普遍的,最终会成为一个你不得不作为初学者的东西。 常见问题解答还为各种function和有用的软件包提供了高度识字(和经验丰富)的使用示例。
如果您是R的新手,而且您更喜欢更多的学习方法,那么常见问题解答不应该被忽视为潜在的学习资源。 许多问题还提供了围绕语言本身范式的有用讨论(vector化,工作stream,debugging只是几个例子)。
几乎FAQ中的每一个问题都值得作为一个新用户来学习,因为它涉及到我自己说的话,当我最初提出这个问题的时候,我希望我已经指出了这个问题。
只是几个例子:
- 如何做一个伟大的R可重现的例子?
- R分组function:sapply vs. lapply vs. apply。 对比反倾销与反对合计
- 用于统计分析和报告撰写的工作stream程
- 如何按列sorting数据框?
- 你最喜欢的Rdebugging技巧是什么?
例如,您可以从RStudio开始,这是一个基于R的IDE,它使得R-project更容易开始。 RStudio开发的代码在R-project中工作正常,所以你不必重写所有的东西。 也阅读这个posthttp://www.robertomarchetto.com/learn_r_project_free_pdf_book一些PDF书籍。