科学网—[转载]自学R语言的十条干货技巧分享

这10条技巧并不是提供使用R的技术指导,而是提供了构建或磨练R编程技能的实用策略。

学习R就是学习一门新语言,包括词汇、语法、句法,甚至可能是一种新的思维方式,打开一个新的世界。

可以这样说,学习R语言很困难,因为它涉及经常报错,所以这个学习的过程要做好准备,识别这些错误,并最终学习如何修复。

即使是最有经验的人,仍然会犯错误、忘记函数参数,或转向互联网搜索以刷新他们可能已完成多次的任务。

R语言的流畅度不是永远不会收到错误消息,而是当你收到错误消息时感觉有能力修复它们(图1)。当然,有些bug的发生并不是因为输入错误的代码,而是因为对函数参数或输出的误解。

虽然避免错误消息是很好的第一步,但确保脚本完成预期任务的最佳方法是:

仔细阅读文档,一次运行一行代码。

学习正确的编程实践的一个好方法是看书。书的一个优点是它们通常代表专家的声音、社区的技能,或两者兼而有之。大多数学习R编程的好书都包含代码示例,你可以使用这些示例来提高技能。

当书本后面没有答案时,开始或加入阅读小组会很有帮助,而且更有趣(后面第八条会讲到加入R社区)。与同事一起尝试练习,并利用彼此作为网络来提出问题、比较方法并通过复杂的任务进行集体思考。

教科书解决方案也定期在个人博客或网站上在线共享。在线发布自己的解决方案可以让你能够获得反馈,使整个R社区受益(参见第9条)。

R用户其实很幸运,你们已经拥有大量高质量的已出版书籍作为学习资源,其中包括:

RStudio网站

比较推荐的R一些书籍包括“RforDataScience”和“AdvancedR”,它们通过tidyverse介绍了R的现代方法(参见第5条关于风格)。

根据你学习R的目的,去看涵盖与你兴趣相符的,更具体主题的书可能会有所帮助。

例如,如果你打算将R用于高级统计,可以去看这类书,如《使用R的生态学中的混合效应模型和扩展》或《广义相加模型:R简介》,每个都鼓励对核心编程和统计技能的深刻理解。

如果你想用R来画出高质量的Web图形,从而传达结果,可能会需要看《Interactiveweb-baseddatavisualizationwithR,plotly,andshiny》,其中涵盖了先进的基于Web的数据可视化技术的介绍。

那么到底应该买多少本书?

应该选修哪些编程的课程?

是不是需要很大的金钱成本?

别担心,下一章节我们提供一些免费资源供参考。

幸运的是,许多高质量的R资源在线免费提供,涵盖了你可能所需的一切。

例如,许多电子书在线免费提供,包括RStudio网站上的电子书。为了更快地参考,RStudio还提供了几个单页备忘单,每个备忘单都涵盖了一个特定包或编程任务的基本知识,可以作为很好的提醒。

如果你觉得看书枯燥,不容易看懂,那么也可以参考一些别的形式:

在Coursera、edX和freeCodeCamp等网站上也有许多关于R、统计和数据科学的免费课程,TheCarpentries的免费培训材料,甚至YouTube和Twitch等网站上的免费视频教程。

无论是通过博客、互动教程还是视频课程,如果有一种在线方式你觉得最适合的,那么很可能会有这种方式的R资源,只需要搜索一点就可以找到。

例如,魁北克生物多样性科学中心(QCBS)R研讨会系列以英语和法语提供了关于数据可视化、线性模型、多元分析等的介绍性和高级研讨会,并在其网站上免费提供PPT、代码和配套书籍。

爱丁堡大学的编程俱乐部为生态学家和环境科学家提供广泛的课程,从数据处理和统计到地理空间分析和机器学习。

-想学习如何使用ShapeFile进行映射吗?

尝试制作一张你最喜欢的城市的海报,作为墙壁艺术印刷。

-通过API抓取数据?

尝试在Spotify上找出最受欢迎的艺术家的共同品质。

-文本分析?

尝试使用R的文本挖掘包来比较你喜爱的书籍或电视节目的情感关联。

-定制数据可视化?

尝试使用ggplot形状和美学来复制你最喜爱的艺术作品(参见Twitter上的#RecreationThurday)。

仅仅为了好玩,项目可以成为培养关键技能的非常有价值的环境。

低风险的环境会减轻你成功的压力,但当你成功时,会给你新的产品和工作代码,供你下次尝试类似的任务时参考。

参与有趣的社区活动、Twitter挑战或R编码竞赛(更多信息,请第8和9条)将帮你建立坚实的基础,为你的编程道路打开大门,同时选择你喜欢的项目。

如果你更愿意让你的R学习更多的“任务”工作,你可以对现有的项目进行低压力的增加,从而获得新的技能。

尝试通过向现有图添加自定义文本注释来练习HTML呈现,或者通过创建用于交互式数据探索的闪亮应用程序,来升级日常工作流程。

在改进现有工作的同时,寻找扩大技能的机会将有助于你成为更全面的R用户。

培养和维护项目的编程方法和组织系统有助于你和他人的代码清晰一致。

如果在开始新任务时对所有未来步骤都进行了精心规划,那么你就可能会从使用虚拟程序代码开始项目中获益。

*虚拟程序代码是计划完成的操作的简单语言描述列表,在文档中写出,然后逐行翻译为代码。

这种方法的一个好处是,它允许你从头到尾对项目进行概念化,并为你将要编写的每一行代码提供一个离散的目标。

如果说,你更喜欢边做边学,可能更喜欢直接编写代码,观察每一行的输出,并在文本中注释最后一行完成的内容,以较小的增量达到最终目标。

在这两种情况下,对代码进行注释是很重要的,确保将来能够理解当前的想法。

在本文中,编程风格是编写代码时使用的特定函数、包和语法策略的集合。如果你认为R是一种语言,可能会认为你的风格是一种方言;两种风格看起来可能不同,但它们的含义是相同的。

在R中,主要的样式划分通常围绕着:你是使用基本R的典型样式,还是采用R的管道方法以及其他tidyverse原则。

3种代码样式的示例

虽然这些样式并不相互排斥,但它们包含不同的函数集,通常适合不同的语法策略来构造代码。根据你的背景,你可能更喜欢其中一种语法。

例如,如果有在C++或Java等程序中编写代码的经验,则顺序或嵌套语法可能会让你熟悉,而管道函数可能会使代码读起来更类似于用英语编写的句子。

在大多数情况下,只要适合你的,什么样式都可以。

当然,匹配协作者中最常见的代码风格或规程中的标准,对阅读、共享和排除代码故障很有帮助。

有时,可能需要切换样式,以便于最好地完成某项任务,但选择尽可能保持样式一致将有助于确保你和其他人可以解释代码。

R生态系统提供了许多工具来促进项目组织。大多数集成开发环境(IDE)都有“项目目录”的概念;这对于领先的RIDE、RStudio和大多数其他(例如,VScode和Atom)都是如此。

还可以使用包来简化项目目录中的文件路径命名方案。根据你所在的领域,文件夹组织结构可能会有所不同,但随着项目列表的增长,对系统进行批判性思考将简化生活。

此外,保持适当的项目组织将有助于你学习“版本控制”的实践,这是一种跟踪更改和备份代码的系统,正在成为跨科学领域的专业标准。

R的大多数功能都捆绑在特定于任务的包中,但很难知道哪些包存在,哪些包最适用于某些任务。

在R中,用户开发包的主要存储库是CRAN,即theComprehensiveRArchiveNetwork,综合R存档网络。

该资源对于R初学者以及正在寻找应对新挑战的方法的更有经验的R用户非常有用。

自学R时,你可能会遇到自己还不知道如何解决的问题。

知道如何以有针对性的方式寻求帮助,这样你就能够查明问题的根源,并且在理想情况下,帮你避免将来出现类似问题。

当你第一次遇到问题时,复制和粘贴遇到的错误到搜索引擎中,可能会让你访问StackOverflow、GitHub或R-bloggers等网站。

-通常情况下,有人会遇到与你相同的问题,并且可能会找到你可以使用的解决方案。

-如果没有的话,你可能需要发布自己的求助。

在这种情况下,有一些指导原则可以使帖子更高效:

最有用的方法是在示例中生成一个玩具数据集,或者使用内置于R中的数据集(请参阅R中的data()),并逐步删除代码中与要解决的问题无关的部分。

随着技能的提高,你可能会发现自己处于一个可以帮助他人的位置。

在Twitter或StackOverflow这样的地方回答问题是回馈R社区的好方法。

你甚至可以回过头来回答你自己过去问过的问题,这样你的帖子标记为“已解决”,并为下一个遇到同样问题的人留下一个有效的解决方案,帮助自己的同时也能给他人带来便利。

建立R语言流利性的最佳方法之一是与他人一起学习。

R社区充满活力,为学习R技能举办了会议、聚会和定期在线活动。

如果你不属于任何特定群体,R社区在许多社交网络上也很活跃。

R通常在Twitter上与#RStats标签讨论如下图。

一些常见科学编程语言的Twitter讨论流行度

社区的一个很好的切入点可能是以下帐户:

@rstudio、@Rbloggers、@icymi_r、@RLadiesGlobal、@R4DS、@rOpenSci

在Facebook和Reddit等网站上也存在一般和特定领域的R组。你甚至可以参加在线活动,如Twitch上的数据科学节目“切片”,观看专家们在R编程挑战(以及其他语言)中的竞争。

在线找到社区都是了解新功能、了解最新软件包、遇到其他地方可能看不到的提示和技巧的好方法。

最重要的是,保持积极性,继续编写代码。

R的开源文化为代码共享提供了丰富的资源。

一些R项目,如#TidyTuesdayR社交数据可视化项目,鼓励在线代码共享,以帮助用户获得和磨练技能。

其他活动,如每年一度的RStudioShiny竞赛,为用户制造的R产品提供了一个友好竞争的渠道,最终免费提供代码,允许用户阅读、下载和复制获奖应用程序。

如果你发现一个特别好的R产品提供了代码,请自己逐行运行代码,以了解每一行或函数的确切意思,具体起到什么作用。你可能会学到一个新的功能,可以应用于自己的项目,或者有许多方法可以完成相同的任务。

现在,许多学术期刊要求出版物中包含公开可用的数据和代码,其中许多(尤其是自然科学领域)都是用R编写的。通过从已发表的文献中下载材料,你可以了解所在领域的专家如何进行分析,使用哪些软件包,以及他们如何组织代码。

代码共享的通用平台包括GitHub、GitLab和开放科学框架(OSF)。

在线共享你的R代码将进一步增强R社区的开放性,并帮助你成为一名更加专注的代码编写者。

发布代码可能会让人感到害怕,但请记住,对科学界来说,可用代码总是比不可用代码更有价值。

R是一个非常棒的工具,可以用于统计、数据操作、可视化等,但它不一定是编程旅程的终点。

例如,为ShinyApplications设计用户界面(ui)将帮助你建立前端web开发的基础,R的各种文本插件(例如ggtext包)将帮助你练习HTML语法,R的向量操作(apply()和purrr::map()函数族)将构建概念框架以转移到其他编程语言,如Julia或Python。

当你继续将编程技能应用于更广泛的任务时,你可能会发现对于某些任务,不同的工具会更有效或更合适。

在这些情况下,你在学习R时建立的信心和技能可能是下一次编程努力的有用跳板。

通过学习R获得的知识,以及你通过自学获得的经验,将使你受益远远超过你手头的任务。

学习R语言,可能是一个充满挫折、自我怀疑和缺乏继续动力的过程。在这里列出的10条是帮助你克服挑战、掌握新技术的最佳策略,甚至可能在这一过程中获得一些乐趣。

也希望可以帮助初学者,无论是研究生、业余爱好者还是渴望学习新工具的研究人员。

当然也不需要一次尝试所有这些规则,也不局限于这十条,你只需要找到最适合你的方法即可。

THE END
1.网上学习的优缺点4质量层次不齐,需要寻找优质课程(除树德外)网上资源良莠不齐,学生容易受到诱惑,不懂的取舍常常既浪费了时间又耗费了精力得不偿失。 5太注重形式化ppt精美但还是有些知识不到位,不能满足同学们的需求 6内容不比上课更贴合进度,老师不固定。节节课老师都不同,不能无缝衔接的插入。使学生没有代入感,一些细节性的https://localsite.baidu.com/article-detail.html?articleId=2511623&ucid=n1msnWbLPHc&categoryLv1=%E6%95%99%E8%82%B2%E5%9F%B9%E8%AE%AD&ch=54&srcid=10005
2.在线课程有什么优点你知道吗?在线学习作为当下十分流行的一种学习方式,在线课程有什么优点呢?搞清楚这个问题,将有利于我们判断是否要选择这种学习方式,也决定了应该如何使用这种学习方式。格子匠熟谙在线教学的特点和规律,现就这一学习方式,作出具体分析,希望可以给广大学生和家长以启发。 https://m.grazy.cn/article/1433.htm
3.在线学习的优势有哪些?在线学习 在线学习的优势有哪些?在线学习的优势有很多,以下是一些主要的优势: 灵活性和便利性:在线学习可以根据学生的个人时间表和学习节奏进行安排。学生可以在任何时间、任何地点通过网络接入课程内容,不受时间和地点的限制。这种灵活性和便利性使得在线学习成为适应工作、家庭和其他承诺的学生的理想选择。 自主学习:https://www.mbalib.com/ask/question-2a80f688779b93908511a6988b5eb055.html
4.在线课程有哪些优点和缺点?在线课程有哪些优点和缺点? 在线课程,也被称为网络课程或电子学习课程,是一种通过互联网提供的教育形式。随着技术的发展和互联网的普及,在线课程已经成为全球教育领域的一个重要组成部分。它们为学习者提供了灵活的学习方式,同时也带来了一些挑战。以下是在线课程的一些优点和缺点。https://www.dawen360.com/article/826787.html
5.VCE课程是什么?学习VCE课程有什么好处?★课后辅导,全程陪伴 ?课后监督学生作业完成情况,及时作业讲解,及时解答学生疑问。 上述是关于“VCE课程是什么?学习VCE课程有什么好处?”的介绍内容,如果同学们想了解更多VCE课程详细信息,或者想参加考而思在线VCE课程培训的话,可以直接咨询网站客服详细了解!https://www.kaoersiedu.com/342958.html
6.在线教育优缺点发展前景加盟创业3、无法预测教学效果。上完直播课,老师对于有课堂疑问的同学不能完全顾及,有些老师会给学生布置作业,老师辛苦批改完之后,可能已经没有时间和精力再对学生进行课后辅导,很难得知教学的效果。 在线教育创业 自己怎么搞在线教育 1、做线上教育,课程的内容会更加多元化,这样也正是线上课程的好处。课程的内容也不再仅限https://www.cnpp.cn/focus/14126.html
7.推荐5大知名线上课程平台,让你马上开课当老师(详细比较)WordPress 搭建线上课程网站 市面上的线上教程平台,通常都要面临平台分润抽成、审核机制繁琐复杂、局限收款方式、无法全部掌握后台的数据分析、必须遵守各个平台制定的法律合约… 等超多规则限制。 如果你不想有以上的限制,想要独立经营自己的教程品牌,完全拥有自己的所有权,推荐你直接使用 WordPress 搭建在线课程网站。https://www.itaoda.cn/blog/9804.html
8.2023年6月英语四级作文范文(通用47篇)作文1:关于在线课程意见 题目:假设你的大学正在进行一项调查,收集学生对网络课程的意见。你要写一篇关于他们的优点和缺点的调查的回应,以及可以做些什么改进。你将有30分钟的时间来完成这项任务。你应该写至少120字,但不超过180字。 范文一: Online learning has become an option because it provides flexible learnhttps://www.oh100.com/kaoshi/cet4/zuowen/251848.html
9.在线学习和远程教育有什么区别?虽然远程教育和在线学习有好处,但在线教育在为学生提供成功所需的资源和支持方面往往更有效。在线学习在提供学习材料方面具有优势,学生可以协作交换笔记并更好地了解他们的科目。WhatsApp群组和常规课程允许学生与老师和同龄人互动,使他们能够消除疑虑并加强对材料的理解。 https://www.pxemba.com/news/doctor231107030534023.html
10.初中网课排行榜前十名怎么样网课学习好处是什么阿卡索外教网是为所有年龄段学员提供全学科的英语外教一对一的教学服务的在线外教培训网课机构,可以随时随地选择外教和老师。他们的课程对标新课标,提供难得兼并的应试教育和实用口语提升课程,对孩子学英语有帮助。 8、精锐教育 精锐教育是一家由哈佛大学精英创办的高端多元化教育集团,专注于为4~18岁的网课学生提供个性化http://m.chusan.com/zhongkao/335755.html
11.教学有法学不可已—在线学习的十个好处在线学习的好处随着在线学习各方面的持续改善,最初的怀疑,被一个个的成功案例证明。在线学习不仅可以和传统学习一样有效,而且有更多的可能性。 成人学习,无利不起早。从职场人士到高校学生,在线学者百家争鸣;从基础理论到装修炒菜,在线课程百花齐放。 以下是在线学者总结出来的十大好处。 https://blog.csdn.net/zhouyulu/article/details/77659447
12.在线学习的好处与坏处在线学习的好处与坏处吧 一、在线学习的好处 1、无时间空间限制 说到在线学习,大多数用户都认为这种方式最大的优势在于没有时间、空间的限制,学员只需在稳定安全的网络 环境下即可随时随地完成学习。 2、可反复多次学习 现在网上很多课程都是有实时录制设置的,老师在完成线上课程教学后,可自动生成课程录制回放。学员http://gaoweifuwu.com/pch5/article.php?id=1401
13.上网课的好处(国家提供的免费网课平台)广东成人教育在线上网课,也就是在线学习,有多种好处,包括但不限于: 1. 灵活性:在线课程可以适合忙碌的日程。 2. 可访问性:只要有互联网连接,就可以从世界任何地方访问课程内容。 3. 个性化学习:许多在线平台提供个性化的学习路径和进度。 4. 资源广泛:在线课程通常包含丰富的多媒体资源,如视频、音频、互动模块等。 https://www.xsy-edu.com/n/83906.html
14.2024年12个国外在线学习平台推荐大部分网课平台的浏览量都在不断增加,而且很多人愿意在课余时间或者下班时间利用网课给自己“充充电”,多学习一些课外的知识和技能,拿个证什么的,对我们自我充实还是到具体的求职中,都会有很大的帮助。那么国外有哪些知名的在线学习平台呢?今天小编就为大家整理了12个国外著名的在线学习教育网站,各类线上课程统统都能https://www.extrabux.cn/chs/guide/5528392
15.[重磅福利]线上言语训练课程免费体验,200位家长强烈推荐!线上课程对家长和孩子有什么好的影响? 崔老师:就像刚刚提到的,其实东方启音有十一年的经验加上引进欧美最具权威性的训练课程,目前开始在线上学习的家长与孩子,其实都可以感受到居家学习的很多好处。 ?对孩子来说,他在家里舒适的环境之下,有家人的陪伴,就可以很安心地接受训练。 https://w3.dfqy.com/activity/151
16.学在兰大“主播”老师线上教学日记(一)网络教学,需要教师尽快熟悉网络平台功能,需要教师投入更多的时间和精力,将传统教学的优点转移到以网络为载体的教学过程中,做到课程内容、教育心理学、教育技术、网络科技的有机结合,以合适的有意义的方式引导学生主动学习,真正起到支持学生学习的作用。 乔昆在线教学日记 https://news.lzu.edu.cn/zt/xxfyfk/66125.html
17.线上课程实施方案(通用13篇)线上课程实施方案(通用13篇) 为确保事情或工作顺利开展,通常需要提前准备好一份方案,方案的内容多是上级对下级或涉及面比较大的工作,一般都用带“文件头”形式下发。方案的格式和要求是什么样的呢?下面是小编帮大家整理的线上课程实施方案(通用13篇),希望对大家有所帮助。 线上课程实施方案1 为全面贯彻落实《XXhttps://www.unjs.com/fanwenku/416706.html
18.最全无代码NoCode和低代码Low您有在线业务,但不知道如何管理客户反馈、处理账单或集成服务台。从这里开始。 Outseta一个多合一的SaaS管理平台。包括可嵌入的账单小部件、CRM、电子邮件列表、服务台和身份验 扁平堆栈的传统方法 第一代一体式Web应用程序框架,使创建强大的在线产品变得更加容易。 https://www.tanmer.com/blog/707
19.在线学习的优点和缺点英语作文.doc1-在线学习的优点和缺点英语作文伴随着科技的不断发展,在线学习已经变得越来越受欢迎。许多学生现在都在上网课,这种学习方式的好处是不可否认的。但是,它也有它的缺点。Thebiggestadvantageofonlinelearningisthatstudentscanstudyfromanywhereandanytimeaslongastheyhaveaninternetconnectionandacomputer.Studentscanalsofittheirhttps://www.renrendoc.com/paper/269977829.html
20.老师上课要洗头吗?看不到学生眼神怎么办?沪上高校进入在线教学相比同济大学的按照课程要求“全新构建”,上海大学是另一种情况。“上大是三学期制,现在正好处在冬季学期,已经上了6周,正常过年以后再上4周的课,也就是说我们的课已经定好了,”教务处处长彭章友说,这就要求在线教育在内容上必须与之前衔接。 据了解,该校从今年大年初三已经开始未雨绸缪,着手网络课程的完善。面对https://www.jfdaily.com/news/detail?id=209668