学习R.一个人从哪里开始?

Bra*_*sen 51 r

我已经使用R一年多一点了,这是一次成功的冒险.但是,我经常发现,由于不知道如何找到它或它的一个例子,我无法弄清楚.

堆栈溢出,

您是否可以推荐一种学习R的途径,以便为其提供一个工具集来解决统计问题?

在互联网上,r项目网站和邮件列表之间有丰富的知识,但它似乎"无处不在",而且当你真正寻找它时无处可去.

例如,当我第一次开始使用R时,我经历了"Intro to R".然后我读了语言定义(显然没有沉没).但是每当我在Stackoverflow上问一个问题时,我都会遇到一些新的badass函数,它可以解决我在短期内遇到的所有问题.我的问题是,您是如何知道这些功能首先存在的?如何找到它们?据推测,你读过一些东西或找到一些资源,使你的学习成为曲线的指数部分.它以前如何?

显然,R作为统计工具的功能很广泛.出于我自己的目的,我主要从事经济或财务数据.因此,考虑到这一点的答案将是最有帮助的.

had*_*ley 53

完全有偏见的回应:学习plyr,reshape2ggplot2.它们将覆盖90%的数据操作和可视化需求.所有这三个软件包都具有一致的数据理念(ggplot2本书所涉及的内容),并且旨在保持一致且易于学习.

我真的鼓励你学习简单的功能,而不是学习很多专业功能,这些功能可以灵活地组合以解决各种各样的问题.这是plyr为数据操作所做的努力,以及ggplot2为可视化所做的努力.这确实意味着你需要在前期投入更多时间来学习一些基础理论,但我相信它会从长远来看能够获得丰厚回报.

  • +1因为这些包非常适合分析数据帧,但不要忘记R做得更多.R的非数据框使用包括运行蒙特卡罗模拟,为了做得好,您确实需要解决基本功能. (5认同)
  • 我绝对同意,虽然你已宣传你的产品...... =) (3认同)
  • 谦虚但真实,几乎我所做的一切都涉及其中一个包.... (2认同)

mrs*_*eve 8

我如何学习R.

R资源:

  • 要学习R,最重要的资源是谷歌.搜索:"TOPIC r-project","TOPIC filetype:r"或"TOPIC site:nabble.com".

  • 其次,查看大多数软件包提供的示例代码.转到" http://bm2.genes.nig.ac.jp/ ",搜索主题并查看示例代码.运行它并调整它,这样你通常可以解决部分问题.

  • 第三:r-help邮件列表.阅读帖子,一遍又一遍地提出基本问题.如果您遇到问题并且完全陷入困境,请在邮件列表中提问.

  • 最后,看一下R-package的源代码.这是最难的部分.如果你可以根据需要改变代码,你已经掌握了R ;-)

一些技巧:

  • R有一条陡峭的学习曲线.这是一个特征;-),它旨在解决高级问题,最终你比使用R的替代品快.

  • 了解与您的问题相关的每个R包和功能.R的优势在于有很多可用的软件包(我认为大概在2000年左右).通常总有一个包更适合或已经解决了你的问题.(一些帮助页面写得很糟糕,很难理解 - 我已经习惯了)

  • R书对学习R没有帮助.是的,那是真的.如果您是专家程序员和专家统计员,您不需要任何关于R的书.(唯一的例外是Hadley Wickham的ggplot2书).如果不是,请学习一般编程和/或高级统计.

  • 一些R包有已知的错误,没有人会修复(包主人离开大学等).只是一个警告,如果您正在寻找代码中的错误并且错误在R包中,这可能会很棘手.

  • 不确定我同意"R书对学习R没有帮助".取决于书和学习者. (8认同)

int*_*ect 7

有一本你可能感兴趣的免费书:概率和统计学概论使用R

  • 然而,最好的部分:它是GPL许可的,你甚至可以用eps/pdf图下载LyX/tex文件.(我在Gregor Gorjanc的博客上看到过,如果你订阅了R-bloggers RSS,你可能会在他们热的时候得到这些东西) (2认同)

小智 7

我将从这开始:

我的问题是,您是如何知道这些功能首先存在的?

简单 - 我们试图解决类似的问题,并遇到了这个功能.它适合或不适合我们的需求,但我们现在知道它在那里.我个人没有使用过R,但你所描述的是每种编程语言的学习曲线.首先,你学习"语法",即你能做什么.然后你尝试做点什么.你发现你做不到.

在那个阶段,程序员有很多选择.我个人做什么?要看.我会尝试查找包/ header/library /无论是哪些成员函数,看看是否符合我的需要.我可能谷歌它,因为除非你真的推动某个地方的人可能已经尝试过但未能做到这一点并且他们的问题得到了回答.如果你正在推动界限,某个地方的某个人可能曾经尝试过并且失败了,但没有得到答案.我可能会尝试一两个论坛来看看会发生什么.我个人不太多使用IRC,但这是另一种选择,邮件列表也是如此,具体取决于问题的具体程度.

我的计算机上还有一个文件夹,里面装满了书,我根据问题搜索了这个书,还有一个我浏览/学习的小书库,里面经常包含实用的,不太适合但可适应的例子.

我唯一的评论是试图阅读语言规范对初学者来说不太可能对你有用.你不会完全理解它意味着什么,因为你没有突破界限并尝试过.例如,C中的新手可能会尝试这样做:

char c = '7';
int x = (int) c;
Run Code Online (Sandbox Code Playgroud)

将字符'7'转换为整数形式.在你理解字符和ASCII如何工作之前,这不是一个糟糕的思考过程,那么你就会明白为什么上面没有给你你想要的东西.

简而言之,我认为这将成为学习过程的一部分,我认为你不能缩短它.安慰就像任何研究一样,你做的越多,你就会知道在哪里看,以及在各个社区提出什么问题.


Pau*_*yuk 7

我做的一件事就是按照SO上的R问题的RSS提要(https://stackoverflow.com/feeds/tag/r).然后我可以浏览其他人提出/回答的内容.

我常常喜欢一个特定的问题/答案,如果我认为我会使用它,或者记下我的笔记本软件(OneNote)中的重点,我甚至会自己尝试问题/答案.

编辑:

我还推荐Patrick Burn的书R-Inferno.这不是一本训练书,而是描述了帕特里克发现的所有陷阱和时刻(到目前为止).


Tal*_*ili 5

这是一个很好的学习资源列表:

https://stats.stackexchange.com/questions/138/resources-for-learning-r

此外,该网站一般是一个很好的资源.

一般来说,我会说遵循邮件列表或帮助列表是我找到学习新事物的最佳方式.(那和"R杂志":http://www.r-bloggers.com)