科学网—[转载]自学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.的在线教学平台(源码+LW+调试+讲解)在线课程源码源码获取 项目简介 本项目是一个基于Spring Boot的在线教学平台,提供教师和学生之间的互动学习环境。平台支持课程创建、实时授课、作业提交和在线评测等功能。教师可以通过视频直播和录播课程传授知识,学生可随时访问课程资源,参与讨论和互动。系统还包括成绩管理、学习分析和反馈机制,帮助教师了解https://blog.csdn.net/madebyfan/article/details/143266579
2.在线教育课堂源码腾讯云开发者社区是指用于搭建在线教育平台的源代码。它提供了一套完整的解决方案,包括前端开发、后端开发、数据库设计等方面的内容,以满足在线教育的各种需求。 在线教育课堂源码的分类可以根据不同的功能和特点进行划分,常见https://cloud.tencent.com/developer/information/%E5%9C%A8%E7%BA%BF%E6%95%99%E8%82%B2%E8%AF%BE%E5%A0%82%E6%BA%90%E7%A0%81
3.自学网在线课程教育网站源码码农集市专业分享IT编程学习资源自学网在线课程教育网站源码Sm**弥烟 上传98.98MB 文件格式 zip 本套学习视频源码支持视频付费购买功能,在线支付方式有支付宝、财付通和网银在线本套学习视频源码支持视频付费购买功能,在线支付方式有支付宝、财付通和网银在线点赞(0) 踩踩(0) 反馈 所需:1 积分 电信网络下载 https://www.coder100.com/index/index/content/id/3887456
4.网站源码模板案例,通用在线课程网站设计教育能够使人成才,17素材网小编分享一款网站源码模板案例,通用在线课程网站设计,跟随式导航栏设计,网页布局合理,适用于在线课程、学习培训、教育学校等相关网站。https://www.17sucai.com/pins/57666.html
5.基于Django的在线选修课程推荐系统(附源码)51CTO博客基于Django的在线选修课程推荐系统(附源码),基于Django的在线选修课程推荐系统(附源码)https://blog.51cto.com/liangdongchang/5213252
6.在线课程售卖系统在线直播教学系统源码芊雅企服课程售卖系统是一款基于为微信和web的在线视频教育模块,支持VIP会员系统和三级分销功能,能够让你快速构建属于自己的在线教育平台!是一款基于微信客户端的课堂功能模块,该功能支持用户在线单独购买课程或开通VIP会员服务进行观看视频课程进行学习。支持用户在线单独购买https://www.kejianet.cn/zaixiankecheng/
7.课程分销/在线直播源码公众号+H5小草一颗外包案例项目名称:课程分销/在线直播源码公众号+H5 所属行业:教育-职业技能 ->查看更多案例 案例介绍 thinkphp5课程分销, 在线教育知识付费, 在线视频教学, 在线直播, 公众号, H5 。。。 案例图片 点击查看他的更多案例 微信接收人才推送 关注猿急送微信平台,接收实时人才推送 接收https://www.yuanjisong.com/conproduction/142763
8.在线教育知识付费网盘音频视频课程赚钱PHP系统源码适合任意虚拟果泽森源码的很多购买者都是纯小白,靠我的源码搭建了自己的知识付费平台,把课程、素材等内容上传,轻松一年赚几十万。例如王宇凡、陈佳佳、赋能哥、神仙姐姐等等。 就拿陈佳佳来说吧,去年她用我的源码搭建了一个PS、PR、 AE、PPT、CAD、达芬奇等软件教程学习网站,每个月课程收入5000+,SVIP会员收入3000+。 https://8wym.com/archives/10953
9.在线教育知识付费类源码带手机端+集成支付功能+课程分销系统本套在线教育源码采用织梦系统二次开发,网站前端所有的页面具体样式以及功能,请看演示网站效果,这套源码和演示网站一样。 演示网站不提供账号注册(实际中可正常使用),另外,网站里面的课程没有实际内容,请您切勿通过测试账号,付款购买里面的课程。 本套源码程序非常适合做视频方面的知识付费平台。做音频知识付费平台也可https://www.zhengjiaxi.com/jpym/bjym/95615.html
10.Vue源码解析系列课程谷粒学苑一、Vue源码解析之mustache模板引擎 二、Vue源码解析之虚拟DOM和diff算法 三、Vue源码解析之数据变化侦测 四、Vue源码解析之AST抽象语法树 五、Vue源码解析之指令和生命周期 学习目录 回放{activityStartTimeStr}正在直播中直播结束{activityLength} 免费课时 1 : 01-尚硅谷-Vue源码mustache模板引擎-课程简介04:52 https://www.gulixueyuan.com/course/414
11.知识付费平台系统源码丨教学课程付费收费丨培训机构在线教育教学万岳科技可快速搭建知识付费系统,原生源码整套出售,支持二次开发和定制开发。万岳知识付费平台可做到PC、Android 、iOS、H5多端互通;包含多种付费形式、多种营销玩法、多种互动功能,轻松实现知识变现。https://www.7claw.com/10125.html
12.知识付费在线教育小程序源码搭建研究市场上已有的知识付费在线教育平台,分析其优缺点和市场占有率。 关注行业发展趋势,如新兴技术、用户行为变化等。 二、平台规划与功能设计 平台定位: 确定平台的定位,如性强、内容丰富、互动性强等。 功能设计: 课程管理:支持课程发布、课程分类、课程搜索等功能。 用户管理:支持用户注册、登录、个人信息管理、学习https://m.11467.com/blog/d9189690.htm
13.在线学习平台(易学堂学习系统)源码仿豆瓣电影-demo.zip 仿今日头条app.zip 仿知乎日报.zip 技术社区-demo.zip 简易小程序源码.zip 空气质量查询app.zip 芒果TV.zip 上传者:qq_28670139时间:2021-09-10 eLearningSystem:通过在线课程学习平台 电子学习系统 该应用程序用于在线课程,讲座或研讨会的准备和实施。 用户能够查看公共课程列表,注册课程并在https://www.iteye.com/resource/wawa129-10590801
14.模仿36Kr正版新闻站项目课程Android源码分享APP源码爱给网提供海量的APP源码资源素材免费下载, 本次作品为gif,png 格式的模仿36Kr正版新闻站项目课程Android源码分享, 本站编号48508287, 该APP源码素材大小为20m, 该素材已被下载:18次, 更多精彩APP源码素材,尽在爱给网。 浏览本次作品的您可能还对 Android应用源码 感兴趣。https://www.aigei.com/item/mo_fang_36kr_zh.html
15.2022年最新彩虹知识付费模板系统源码(虚拟课程运营版)如果你不会安装,里面也有教程或者联系在线客服为您解决奥! 本源码使用协议: 如果在使用过程中,出现违法违纪的情况下均与本人无关。全由使用者承担。 在使用中出现问题,例如:BUG、数据泄露及丢失、入侵等安全问题,全由使用者承担。 此系统仅供个人学习、研究之用,请勿用于商业用途。 https://www.goww.net/445.html
16.成都源码时代成都源码时代深耕IT教育多年,累计帮助了数万人成功加入了自己所学专业的行业,由于教学质量极高,在一定程度上推动了行业的发展,也因此深的学员的喜爱与信赖。 全部校区: 紫光芯校区 高新校区 详情> 咨询热线: 400-888-4011 预约试听 在线咨询 成都源码时代-精品课程COURSE全部课程>> IT培训 新媒体运营线下http://www.peixunt.cn/school/447.html
17.Thinkphp视频影视内容付费系统整站源码源码下载源码官网:未知官方 更新时间:2021-03-29 网友评分: 360通过腾讯通过金山通过 24MB 详情介绍 Thinkphp视频影视内容付费系统整站源码,非常不错适合网校课程在线教育付费观看教程类收费内容,喜欢的朋友快来下载吧! 1、B/S架构 2、MVC编码架构,H5端采用vue.js https://www.jb51.net/codes/769490.html
18.网校系统直播教学平台在线教育系统源码268教育软件268教育软件-在线教育私有化解决方案提供商,产品包括网校系统,直播教学平台,教育系统源码,培训考试等,包含学习平台,直播点播,互动班级,作业打卡,考试题库,推广营销等,专注服务各类线下机构,实现互联网转型http://268xue.com/
19.格子匠在线教育APP源码打造机构专属在线教育APP 开放源码 PP源码打包购买 方便机构二次开发,永久使用 在线课程 音频、录播、直播多种课程形式 满足机构教学需求 下载APP体验 ios Android 营销工具 VIP会员、套餐营销、积分营销、优惠码 满足机构营销需求 下载APP体验 ios Android http://m.cy.grazy.cn/app
20.易语言资源网最全的易语言在线课程观看网站易语言资源网 - 专注易语言资源分享,易语言资源网为你提供易语言源码下载,易语言模块下载,易语言支持库下载,同时提供丰富的功能,在线预览模块命令,高级搜索易语言相关资源。https://www.eyuyan.la/
21.西陆教育系统XiluEdu,微信教育小程序开发,教育小程序模板源码提供源码 急速响应 一年免费售后服务 西陆教育系统(XiluEdu) 基于ThinkPHP和Uniapp开发的教育系统,支持微信小程序、H5、APP多终端;支持线上线下两种课程模式;支持视频课程、语音课程、文字课程,在线课程学习记录;VIP会员体系,支持VIP在线购买,免费观看课程;植入全民分销系统,鼓励分享转发;在线社区模块,学生可以发布学习动态http://www.xilukeji.com/15.php
22.编程人工智能| | └──源码 |├──(11)最新尚硅谷自动化构建工具 视频 | | ├──(1)webpack | | ├──(2)Gulp | | └──(3)Grunt |├──(12)React | | ├──视频 | | └──源码 |├──(13)尚硅谷-css2.1 | | ├──新建文件夹 https://www.1xm1.com/xiazai/6994.html
23.2.6.3全开源解版,亲测完美可用,增加课程单独海报源码介绍 微课堂是一款基于为微信和web的在线视频教育模块,支持VIP会员系统和三级分销功能,能够让你快速构建属于自己的在线教育平台!微课堂V2在微课堂基础上进行拓展开发,是一款基于微信客户端的课堂功能模块,该功能支持用户在线单独购买课程或开通VIP会员服务进行观看视频课程进行学习。微课堂V2支持用户在线单独购买课程或开通https://www.wazyb.com/7755.html