科学网—[转载]自学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.在线编辑器,在线运行代码,在线编译器大全在线工具(cainiaojc.com),为前后端开发人员提供在线编辑器,在线调试器,在线编译器,在线格式化,在线压缩代码,以及C++、C、Golang、Java、Kotlin、Node.js、Python、Swift、PHP、Python、 CSS、JS等在线调试工具,帮您在线快速调试,编译代码。https://www.cainiaojc.com/tool/index.html
2.无代码在线制作平台(在线编写代码网站)本篇文章给大家谈谈无代码在线制作平台,以及在线编写代码网站对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享无代码在线制作平台的知识,其中也会对在线编写代码网站进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! 本文https://www.huoban.com/news/post/123261.html
3.创建网站源代码,从零开始打造属于自己的在线平台创建网站源代码需要经过多个步骤,包括确定网站需求、学习HTML和CSS、编写网页结构代码、设计网页样式、添加交互功能、优化代码和测试、发布网站和持续改进。通过掌握这些技能和方法,您可以从零开始打造属于自己的在线平台,实现个人或企业的发展目标。无论是个人博客、电商网站还是企业官网,通过精心设计的源代码,都可以使您的https://www.300.cn/xxzx/6028.html
4.在线合作编写HTML代码CollabonCode有趣网址之家虽然不知道这家伙的实用价值到底如何,但我还是想介绍给大家!网站可以在线与他人共同编写及修改html网页代码,支持多人同时操作,实时显示,不错哦!传送门 已挂 方法 进入网站后,输入一个房间名并创建,将房间地址发给朋友即可多人操作了!https://youquhome.com/3837/
5.在线就可以编程的网站有哪些Python学习下面是一些可以在线编写 Python 代码的网站: Repl.it:一个支持多种语言的在线编程环境 Codecademy:提供互动式 Python 课程 HackerRank:提供在线编程挑战赛,包括 Python 题目 LeetCode:提供计算机编程挑战赛,包括 Python 题目 Jupyter Notebook:一个开源的 Web 应用程序,可以在线创建和共享代码、文档和数据可视化。 https://download.csdn.net/blog/column/12123825/128891931
6.CodePen:在线前端代码编码测试工具新媒派codepen代码在线运行的在线工具使用教程 注册和登录:你可以用Twitter,Facebook,GitHub或邮箱来注册和登录CodePen的网站。 创建和编辑Pen:你可以点击首页左上角的Pen按钮,进入Pen编辑器,它分为三个部分,分别是HTML,CSS,和JavaScript。你可以在这里编写你的前端代码,并且实时看到效果。你也可以点击每个部分的下拉箭头,选https://pidoutv.com/sites/12814.html
7.STM32在线升级OTA简介本文主要讲解在线升级(OTA)的基础知识, 主要是针对IAP OTA从原理分析,分区划分, 到代码编写和实验验证等过程阐述这一过程 帮助大https://news.eeworld.com.cn/mcu/ic542790.html
8.@所有人春风送岗:有一种心安一一家门口就业澎湃号·政务3.熟悉软件技术文档的编写,具备良好的文档编制和代码编写规范; 4.有较强的英语读写能力,英文CET-4以上,能阅读各种技术文档; 5.富有敬业精神和责任心,能够承担工作压力; 6.有基本的电路知识,熟悉UART, I2C, SPI 通信总线。 岗位职责 1.C语言相关产品的应用程序代码设计、产品软件架构设计; https://www.thepaper.cn/newsDetail_forward_11203752
9.两个在线编写C++代码的网站孤火第一个支持的编程语言很多,首推http://ideone.com/第二个简单了点,不过可以通过email分享给朋友http://codepad.org/试一试,可以用这两个网站提高自己编写代码的能力,在没有那么多重量级IDE的环境下。https://www.cnblogs.com/lchb/p/3444316.html
10.卷王都在用!100款宝藏级AIGC工具分享,强烈建议收藏!!目前,通义千问主要功能包括文案创作、对话聊天、知识问答、逻辑推理、代码编写、文本摘要以及图像视频理解服务。网页链接:https://tongyi.aliyun.com/4、讯飞星火:7大维度能力,表现不输ChatGPT讯飞星火是科大讯飞在5月6日推出的一款大模型,具备文本生成、语言理解、知识问答、逻辑推理、数学、代码、多模态这七大维度https://www.changbiyuan.cn/news/2023/news_0711/69335.html
11.分享8个最佳的代码片段在线测试网站php技巧Google Code Playground 提供了一个在线版的 JavaScript、Ajax 的编辑、开发和调试环境,而且可以方便的访问相应的文档。内置了很多常用的 Google API 的示例和几个 Ajax 库。 8.jsdo it jsdo it 允许开发者在线编写 JavaScript、HTML5 和 CSS3 代码,并允许在社区中相互分享。 https://www.jb51.net/article/39292.htm
12.笔.COOL,一个功能完备使用便捷的在线HTML/Vue代码编辑器和前端HTML/CSS/JS在线编辑器,Vue在线编辑,实时预览,随时随地编写前端代码;Vue Playground;社区驱动,汲取设计灵感;BUG复现,高效沟通协作;https://www.bi.cool/
13.小闪电创始于2016年,专业的代码在线运行 编辑 1 0下载全屏 嵌入式开发-MOS精灵 ¥86.00 全屏动画嵌入式开发蕃茄钟固件开源原理图开放WiFi芯片ESP8266 购买成品固件广场QQ交流群 店铺(MOS精灵固件) 售出硬件均已内置VIP激活码,可刷入和更新官方VIP固件。 作为JSRUN重点支持设备,JSRUN重新设计了主板和硬件方案,标配顶部触控按https://jsrun.net/
14.VisualParadigm破解版设计和管理工具VisualParad在本教程中,我们将以在线酒店预订系统为例,演示如何使用Visual Paradigm编写有效的用例。让我们从绘制用例图开始。我们将继续使用最终设计编写有效的用例。 通过从应用程序工具栏中选择UeXceler> UeXceler,在Visual Paradigm中打开UeXceler 。 打开Use Case Diagram页面。 在图表工具栏中选择Actor。单击图表以创建actor并http://www.sd173.com/soft/8267.html
15.tiff格式转化成jpg格式,好用的方法全在这里第4步,格式转换的结果会在线面进行体现,我们可以看到一个下载图标,点击这个下载图标后就可以将刚刚转成的jpg图片下载下来使用了。 方法四:编写代码进行转换 在许多编程语言中,都有用于处理图像的库和工具,可以帮助你将TIFF格式的图像转换为JPEG格式。下面是使用Python语言和Pillow库 (Python Imaging Library,PIL的一个https://www.douban.com/note/862673652/
16.Python网页版运行器1. 菜鸟工具:这是一个基于Python3.x的在线编译器,用户可以在网页上直接编写Python代码并运行,查看结果。 2. w3cschool:提供了一个在线的Python编译器,支持在线运行Python代码,方便开发人员学习和测试。 3. JSON中文网:提供了一个基于Linux操作系统环境的Python在线运行工具,特点是运行快速,运行结果与常用开发、生产环https://www.colostar.cn/links/8870.html
17.美团技术团队本文精选了美团技术团队被ACL 2024收录的4篇论文进行解读,论文内容覆盖了训练成本优化、投机解码、代码生成优化、指令微调(IFT)等技术领域。这些论文是美团技术团队跟高校、科研机构合作的成果。希望能给从事相关研究工作的同学带来一些帮助或启发。阅读全文 美团技术团队,顶会论文,ACL,大模型 https://tech.meituan.com/
18.菜鸟教程Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放 【学习 Rust】 Rust 语言是一种高效、可靠的通用高级语言 【学习 Zig】 Zig 是一个命令式、通用、静态类型、编译的系统编程语言 【学习 Scala】 Scala 是一门多范式(multi-paradigm)的编程语言。 【学习 Go】 Go语言是谷歌推出的一种全新的编https://www.runoob.com/
19.在线html代码生成器,支持网页快速排版CSS代码一键生成的在线设计type anything 前段时间登上国外媒体网站后深获好评,这是一项非常方便的在线工具,功能设计很简单,主要提供一段文章模板(里头包含 h1、h2 标题和文字),用户透过快速按钮来切换字型、文字大小、行高、字重、边缘等相关属性,预览效果。 当调整到你觉得最舒服的排版后,一键将 css 程序代码输出就能套用至自己网站。 https://cloud.tencent.com/developer/article/2082799
20.实用好软10款在线代码编辑器–富泰科一款C语言、C++、java、python、php代码在线测试执行编辑器。 在线地址:https://www.dotcpp.com/run/ 10、codeanywhere Codeanywhere是一个在线的代码编辑器,有着桌面IDE的所有特性,还有移动端的应用,你可以在浏览器中编写html、css、javascript、php、XML的代码,目前支持chrome、firefox、Opera、Safari、IE,当然也可以https://www.futaike.net/?p=8096
21.好用的在线代码编辑器合集来了用户无需搭建开发环境,只需要打开浏览器就能编写并运行、调试项目代码,从而聚焦业务应用本身。 有人说,这个怎么会轻便呢? 在线版本的自然轻便了,对于初学者,TitanIDE提供免费的在线环境,适合初学者体验或练手。 TitanIDE在线体验环境地址> 市面上常见的IDE产品还有:https://www.cloudtogo.cn/blog-article/425.html
22.C语言在线编译器轻量且功能强大的CIDE支持C语言工程开发,编码、编译及运行您的C语言项目;支持客户端 & Cloud IDE 两种模式,打开即用; 您的项目能实时存储在云端;可以与朋友协作开发或分享项目。 下载客户端 自动配置C语言 开发环境 无需下载C语言开发环境,可直接在线编写代码 内置多种C语言版本,满足不同项目的需要 https://lightly.teamcode.com/c/