我一直在使用R一年多一点,这是一次成功的冒险。但是,我常常发现,由于不知道如何找到它或其中的一个例子,我无法弄清楚。
Stackoverflow,
您是否可以推荐一种学习R的途径,以便为其提供一个工具集来解决统计问题?
互联网上有很多知识,在r项目网站和邮件列表之间,但它似乎“无处不在”,而且当你真正寻找它时无处可去。
例如,当我第一次开始使用R时,我经历了“R简介”。然后我读了语言定义(显然没有沉没)。但是每当我在Stackoverflow上问一个问题时,我都会遇到一些新的badass函数,它可以解决短期内我遇到的所有问题。我的问题是,您是如何知道这些功能首先存在的?如何找到它们?据推测,你读过一些东西或找到一些资源,使你的学习成为曲线的指数部分。它以前如何?
显然,R作为统计工具的功能很广泛。出于我自己的目的,我主要从事经济或财务数据。因此,考虑到这一点的答案将是最有帮助的。
答案 0 :(得分:53)
完全偏见的回复:了解plyr
,reshape2
和ggplot2
。它们将覆盖90%的数据操作和可视化需求。所有这三个软件包都具有一致的数据理念(ggplot2本书所涉及的内容),并且设计为一致且更容易
学习。
我真的鼓励您学习可以灵活组合以解决各种问题的简单功能,而不是学习许多专业功能。这就是plyr为数据操作所做的努力,以及ggplot2为可视化所做的努力。这确实意味着你需要在前期投入更多的时间来学习一些潜在的理论,但我相信从长远来看它会得到很好的回报。
答案 1 :(得分:8)
我学习R的方式。
R资源:
要学习R,最重要的资源是google。搜索:“TOPIC r-project”,“TOPIC filetype:r”或“TOPIC site:nabble.com”。
其次,查看大多数软件包提供的示例代码。转到“http://bm2.genes.nig.ac.jp/”,搜索主题并查看示例代码。运行并调整它,这样你通常可以解决部分问题。
第三:r-help邮件列表。阅读帖子,一遍又一遍地提出基本问题。如果您遇到问题并且完全陷入困境,请在邮件列表中提问。
最后,查看R-packages的源代码。这是最难的部分。如果您可以根据需要改变代码,那么您已经掌握了R; - )
一些提示:
R有一条陡峭的学习曲线。这是一个特征;-),它旨在解决高级问题,最终你比使用R的替代品快。
了解与您的问题相关的每个R包和功能。 R的优势在于有很多可用的软件包(我认为大概在2000年左右)。通常总有一个包更适合或已经解决了你的问题。 (有些帮助页写得很糟糕,很难理解 - 我已经习惯了)
R书对学习没有帮助。是的,这是真的。如果您是专家程序员和专家统计员,您不需要任何关于R的书。(唯一的例外是Hadley Wickham的ggplot2书)。如果不是,请学习一般编程和/或高级统计。
有些R包有已知错误,没有人会修复(包主人离开大学等)。只是一个警告,如果您在代码中查找错误并且错误在R包中,这可能会非常棘手。
答案 2 :(得分:7)
您可能会感兴趣的免费书籍:Introduction to Probability and Statistics Using R
答案 3 :(得分:7)
我将从这开始:
我的问题是,您是如何知道这些功能首先存在的?
简单 - 我们试图解决类似的问题,并遇到了这个功能。它适合或不适合我们的需要,但我们现在知道它在那里。我个人没有使用过R,但你所描述的是每种编程语言的学习曲线。首先,你学习“语法”,即你能做什么。然后你尝试做点什么。你发现你不能。
在那个阶段,程序员有很多选择。我个人做什么?要看。我会尝试查找包/ header / library /无论是哪些成员函数,看看是否符合我的需要。我可能谷歌它,因为除非你真的推动某个地方的人可能已经尝试过但未能做到这一点并且他们的问题得到了回答。如果你正在推动界限,某个地方的人可能曾经尝试过并且失败了,但没有得到答案。我可能会尝试一两个论坛来看看会发生什么。我个人不太多使用IRC,但这是另一种选择,邮件列表也是如此,具体取决于问题的专业性。
我的计算机上还有一个文件夹,里面装满了书籍,我根据问题搜索了这个书,还有一个我浏览/学习的小书库,里面经常包含实用的,不太适合但可适应的例子。
我唯一的评论是试图阅读语言规范对初学者来说不太可能对你有用。你不会完全理解它意味着什么,因为你没有突破界限并尝试过。例如,C中的新手可能会尝试这样做:
char c = '7';
int x = (int) c;
将字符'7'转换为整数形式。在了解字符和ASCII如何工作之前,这不是一个糟糕的思考过程,那么你就会明白为什么上面没有给你你想要的东西。
简而言之,我认为这将成为学习过程的一部分,我认为你不能缩短它。安慰就像任何研究一样,你做的越多,你就会知道在哪里看,以及在各个社区提出什么问题。
答案 4 :(得分:7)
我所做的一件事就是在SO(https://stackoverflow.com/feeds/tag/r)上关注R问题的RSS提要。然后我可以浏览其他人提出/回答的内容。
如果我认为我会使用它,或者将重点记入我的笔记本软件(OneNote),我常常会喜欢一个特定的问题/答案,偶尔我会尝试问题/答案自己。
编辑:
我还建议Patrick Burn的书R-Inferno。这不是一本训练书,而是描述了帕特里克发现的所有陷阱和时刻(到目前为止)。
答案 5 :(得分:5)
以下是学习R的资源清单:
https://stats.stackexchange.com/questions/138/resources-for-learning-r
此外,该网站一般都是一个很好的资源。
总的来说,我会说遵循邮件列表或帮助列表是我找到学习新事物的最佳方式。 (那和“R杂志”:http://www.r-bloggers.com)
答案 6 :(得分:4)
学习RODBC软件包以直接与Oracle数据交互对我的工作产生了重大影响。当我将Oracle数据直接导入R并仅在几行代码中创建一个情节时,我的老板感到惊讶。尝试在Excel中执行此操作!
故事的道德,学习如何在R中提取数据并对其进行操作。然后转到ggplot等一些较酷的东西。
答案 7 :(得分:4)
我可以推荐Penn University's Introductory Course on R。
仅ggplot章节值得一读 - 我发现ggplot非常混乱,但这是一个很好的解释。
答案 8 :(得分:2)
帮助我学习最多的那本书是The Art of R Programming。很多编程书都可以干。由于R通常是编程的切入点,因此材料的声音与学生共鸣是很重要的。那本书和我一起做了。声音非常随意,我很喜欢。
答案 9 :(得分:1)
一些有趣的链接:
简介,链接和示例:http://manuals.bioinformatics.ucr.edu/home/programming-in-r
答案 10 :(得分:1)
[R]标签常见问题解答,就在Stackoverflow上,https://stackoverflow.com/questions/tagged/r?sort=frequent提供了许多可重复的示例,人们可以用它来“边做边学”。
大多数问题都很常见,最终会成为初学者的问题。常见问题解答还提供了高度识字(和经验丰富)的各种功能和有用包的使用示例。
如果您是R的新手,并且您更倾向于学习,那么不应忽视常见问题解答作为潜在的学习资源。许多问题也提供了围绕语言本身范例的有用讨论(矢量化,工作流程,调试只是几个例子)。
常见问题解答中的几乎所有问题都值得作为一个新用户进行研究,因为它涉及的元素,对我自己而言,我希望我最初提出这个问题时已经指出过。
仅举几例: