R数据分析:解决科研中的“可重复危机”,理解Rmarkdown

这篇具有很好参考价值的文章主要介绍了R数据分析:解决科研中的“可重复危机”,理解Rmarkdown。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

不知道刚接触科研的大伙儿有没有这么一个感觉,别人的研究很大可能你重复不出来,尤其是社科实证研究,到现在我都还觉得所谓的实证是个很玄乎的东西;

如果是刚开始做数据分析,很多时候你会发现自己的分析结果过几天自己都重复不出来。反正我自己是有这样的经历的。有可能是某一步操作忘记了,自己都不知道,尤其是用菜单式的分析软件,比如spss,少点一下按钮结果都可能不一样,这种问题没人摆上来说,但实际上是很普遍的。

细节的无心失误大概率不会影响到结果,但是大家毕竟是在做“科研”!严格来说还是在做比较神圣的工作,这个问题一天不解决,自己不去关心,课题组也不关心,课题负责人不关心,你自己应该感到不安的,应该对所谓的“科研”感到不安,应该对自己正在做的事和自己的前途和科学的发展感到不安。

虽然自己已经脱离学术界,但是仍然认为这个问题确实是一个很大的问题,社会科学想要真正的发展,自己的工作自己都重复不出来,你这不是来搞笑嘛。

Recently, researchers across the health, behavioral, and social sciences have become increasingly concerned with the reproducibility of research. The concern ranges from asserting that “most claimed research findings are false” (Ioannidis 2005, pg. 696) to “we need to make substantial changes to how we conduct research,” (Cumming 2014, abstract). Some have come to refer to the situation as a “reproducibility crisis”

这种情况有一个叫法,叫做科研的可重复危机“reproducibility crisis”,这个东西在国内应该有更多人站出来呼吁才行,至少我读书的时候没接触过,个人感觉这个理念应该作为科研入门第一课来加以强调。

可重复危机

科研的可重复性包括3个大的方面:

  • 方法的可重复:指的是我可以仅仅根据用你文章中描写的操作,如果有相同数据的话就能够重复出来你的分析方法。
  • 结果的可重复:指的是我用和你一样的方法,如果还能拿到你的原始数据,那么我可以做出来和你一样的结果。
  • 结论的可重复:指的是我自己根据你文章的描述去模仿着做你的研究,我能得到和你一样的结论。

方法的可重复强调的是你写文章的时候方法部分要将分析步骤写详细,结果的可重复强调的是你要主动分享已发表文献的原始数据,供同行做可重复检验;结论的可重复强调是你没有选择性报告结果。

这个就是研究真实性的3条硬杠杠。

上面的3点都做到,都大面积推行,那科研作假肯定会少很多,尤其是在社会科学领域,具体怎么样去保证实施,社会科学领域的科研工作者愿不愿意去落地实施,阻力有多大,我这个小屁民就关心不到了,不过还是希望科研管理部门能够积极推动,研究生教育管理部门能够对这方面强调并加以切实落实,杂志发表审稿也应该加以规范。

今天要给大家介绍的是保证大家自己能完全重复自己研究的方法,咱先做好自己,解决自己的可重复危机。就是学会使用Rmarkdown。

Rmarkdown

学了这个Rmarkdown科研就可重复了?就没有危机了?逻辑在哪里?

逻辑就在于Rmarkdown是一个闭环,本身是一个self-contained的东西。中间有任何地方出错就knit不了,你就出不了结果。就意味着你只要这一次knit得出结果,然后将文件保存好,之后你无论将文件放到天荒地老,哪天想起来复现下结果,你都保证可以做得到。逻辑就在这。

The document’s code must be fully self-contained. That means, anything you want it to run has to be in the document, regardless of what you’ve already run outside of knitting. For example, if we are testing our code and running it throughout, when we go to knit. It will re-run everything in the document and forget everything else you’ve done that is not in the document.

这样就相当使用于Rmarkdown就强制性要求你的工作流程是捋的清清楚楚的,不能有任何错误,流程捋通顺后就可以一键复现,并且别的研究者只要拿到你的Rmarkdown文件,也可以一键复现你的整个工作。

In fact, it makes it so another research could reproduce your work by just downloading and running your R Markdown document. This removes all guesswork for others regarding your data analysis and reporting.

大家可以理解为作为一个self-contained的系统,我们喂给Rmarkdown原始数据和代码再将论文文本内容整合进去就可以随时复现或者直接发表。

上面就是Rmarkdown保证你的工作可以随时重复的逻辑。下面就给大家写Rmarkdown的基础实操:

第一次写Rmarkdown,我们还是从最基础的给大家介绍:

Rmarkdown就是在整合在R语言中的markdown,为什么要整合,就是为了把代码运行和文章写作放一起,而不是割裂开。markdown本身是一种文档格式,比如很多的平台都支持markdown写作,简书是吧,CSDN都是支持的,在Pandoc包的加持下,markdown文件又可以很方便地输出成丰富的文档格式,比如PDF,HTML,WORD等。

R Markdown was designed for easier reproducibility, since both the computing code and narratives are in the same document, and results are automatically generated from the source code. R Markdown supports dozens of static and dynamic/interactive output formats.

一个Rmarkdown文件包括三个基础的部分:metadata、text、code。

There are three basic components of an R Markdown document: the metadata, text, and code.

就是说我们使用Rmarkdown的基本流程就是首先写好metadata,然后写我们的markdown文本(文本中可嵌套R代码,代码块),最后输出成目标文件类型。这个就是一个完整的流程,这个流程跑下来,存好,就不用担心你的工作的重复性问题了。

Rmarkdown能输出的文件类型非常多,帮助你完成的任务非常多,比如下面这一大堆:做个PPT,写个Shiny应用都可以:

这些功能强烈鼓励大家自己去探索一番,我们今天给大家介绍了基础操作。然后重点就放在学术论文的可重复危机角度,重点给大家介绍Rmarkdown学术论文写作和帮助大家理解Rmarkdown能结局科研重复危机的逻辑。

操作基础

花里胡哨的东西没有,直接在Rstudio按照下面代码即可生成一个Rmarkdown文件:

首先是对metadata的也就是YAML Headers的操作,所谓的YAML标题就是Rmarkdown文档的第一块,长这样:

基础有4个参数,可以写标题,作者,时间和输出格式,还可以加目录,代码和对应的输出如下:

还可以通过theme参数设置不同的输出主题。

第二个部分是Rmarkdown中的代码部分,代码部分以```{r}开头,以```结尾,下图就是一个代码块,可以在这块地方写自己的R代码(平时怎么在script中怎么写,这儿就怎么写),通过R代码输出我们的统计结果:

大家可以注意到上图代码块开头有一些参数,比如setup,include,这些都是对该代码块进行显示控制的参数,setup是代码块的名字,include是控制该代码块是否运行的参数,还有echo是显示不显示代码的fig.width, fig.height, and fig.cap是控制输出图片的参数;还有message and warning是控制代码输出信息的参数

具体的语法原则在下图中有可以查阅,重点就是要反复练习,反复尝试才能掌握好:

剩下的部分就是用markdown语法写文本的部分,比如一个示例的Rmarkdown文件(Rstudio自带的)如下:

我们将这个Rmarkdown文件,Knit之后的输出设定为pdf就是下图右侧的样子。

可以看到输出的pdf中有图有表,有文字有结果。左边是分析代码右边是结果呈现,只要拿到左边的Rmarkdown文件右边的结果就可以一键,这个就是Rmarkdown的基本工作流程,保障了自己工作的随时可重复。

基础部分就写到这儿,接下来看利用Rmarkdown写学术论文。

用Rmarkdown写学术论文

我们明白了Rmarkdown解决科研的重复性危机和熟悉其基本工作流程之后,延申的应用就是用Rmarkdown来写科研论文,就是你将Rmarkdown中的text部分都换成你的论文内容,整个就变成了论文一键修改和一键复现,相当于不仅解决了统计结果的可重复,连论文格式本身也做到了可重复。

首先点击file然后找个学术出版社的模板(得安装rticles包):里面有各种系列杂志的模板的,比如IEEE,PLOS,Elsevier, Springer,MDPI等等还有预印本平台arXiv Preprint的模板,反正够你用的。

万一不行,上面还有自定义选项,啧啧啧。

我们依照springer出版社的模板来完成一篇示例论文:具体操作便是点击file-new file-Rmarkdown,然后点击上图中的From Template然后找到Springer journal,然后就会出来一个模板,我将作者标题做了改动(内容你都可以按照你实际论文的内容进行相应改动),如下:

然后点击Knit按钮,即可输出属于我的Springer发表格式的文献,如下图:

直接拿去投稿就行了。如果结果需要改动,直接改原来的Rmarkdown中的R代码即可。保障了自己工作的可重复性。文章来源地址https://www.toymoban.com/news/detail-497058.html

到了这里,关于R数据分析:解决科研中的“可重复危机”,理解Rmarkdown的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 快速上手MATLAB:科研、工程、数据分析,MATLAB入门(下)教你基础知识!分享《MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)》

    快速上手MATLAB:科研、工程、数据分析,MATLAB入门(下)教你基础知识!分享《MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)》

    1、《MATLAB完全学习手册(视频+课件+代码)》 2、《MATLAB入门》 3、《详解MATLAB在科学计算中的应用》 4、《案例二 MATLAB与Excel交互》 5、《MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)》 6、《MATLAB常用函数参考 MATLAB函数汇总 精通MATLAB》 7、等等。。。。 前两天,我们在(

    2024年02月07日
    浏览(55)
  • 基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力与项目科研水平研修

    基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力与项目科研水平研修

    【科研团队必选】 老师赋予目的不仅仅是技术的掌握,更能从技术融合与科研经验的视角下,培养科研团队科研素质,挖掘-融合-创新 目的: 以科研及项目角度解决您的数据分析问题及热点问题,为您的论文写作及项目推进挖掘更好的创新点与数据支持,培养科研团队科研

    2024年02月13日
    浏览(16)
  • 科研学习|论文解读——老年人对生活的支配与日常生活信息寻求行为之间的关联:皮尤研究中心的信息参与和信息谨慎调查数据分析

    科研学习|论文解读——老年人对生活的支配与日常生活信息寻求行为之间的关联:皮尤研究中心的信息参与和信息谨慎调查数据分析

    题目: Associations between mastery of life and everyday life information-seeking behavior among older adults: Analysis of the Pew Research Center\\\'s information engaged and information wary survey data 人口老龄化是一个全球现象。(现实背景) 老年人的信息搜寻行为可能在促进老年人健康老龄化方面发挥重要作用。(

    2024年01月19日
    浏览(15)
  • 数据分析:方差分析在R语言中的应用

    数据分析:方差分析在R语言中的应用

    方差分析的R语言实现包括以下部分: 数据导入 数据清洗 ANOVA计算 结果解析 ANOVA评估 参考教程Analysis_of_Variance 随机生成数据 存储数据 txt数据格式 xlsx数据格式 筛选数据:丢弃A组数据 数据平均值和其他指标 展示数据: boxplot one-way ANOVAs: 使用aov函数运行单因素方差分析 (公式

    2024年04月26日
    浏览(13)
  • 数据分析之Logistic回归分析中的【多元有序逻辑回归】

    多元有序逻辑回归用于分析有序分类因变量与一个或多个自变量之间的关系。有序逻辑回归适用于因变量具有自然排序但没有固定间距的类别,例如疾病严重程度(轻度、中度、重度)或调查问卷中的满意度评分(非常不满意、不满意、一般、满意、非常满意)。 多元有序逻

    2024年04月24日
    浏览(36)
  • 【Python】数据分析+数据挖掘——探索Pandas中的数据筛选

    【Python】数据分析+数据挖掘——探索Pandas中的数据筛选

    当涉及数据处理和分析时,Pandas是Python编程语言中最强大、灵活且广泛使用的工具之一。Pandas提供了丰富的功能和方法,使得数据的选择、筛选和处理变得简单而高效。在本博客中,我们将重点介绍Pandas中数据筛选的关键知识点,包括条件索引、逻辑操作符、 query() 方法以及

    2024年02月15日
    浏览(15)
  • 【Python】数据分析+数据挖掘——探索Pandas中的索引与数据组织

    【Python】数据分析+数据挖掘——探索Pandas中的索引与数据组织

    在数据科学和数据分析领域,Pandas是一个备受喜爱的Python库。它提供了丰富的数据结构和灵活的工具,帮助我们高效地处理和分析数据。其中,索引在Pandas中扮演着关键角色,它是一种强大的数据组织和访问机制,使我们能够更好地理解和操作数据。 本博客将探讨Pandas中与索

    2024年02月15日
    浏览(25)
  • python在财务分析中的应用,用python做财务数据分析

    python在财务分析中的应用,用python做财务数据分析

    大家好,本文将围绕python在财务分析中的应用展开说明,用python做财务数据分析是一个很多人都想弄明白的事情,想搞清楚python与财务数据分析需要先了解以下几个事情。 Python 是一种流行的编程语言,通常用卜丛于处理财务数据。一个常见的纯盯应用是在数据分析和数据科

    2024年02月03日
    浏览(13)
  • 机器学习在大数据分析中的应用

    机器学习在大数据分析中的应用

    🎉欢迎来到AIGC人工智能专栏~探索机器学习在大数据分析中的应用 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:AIGC人工智能 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 🍹文章作者技术和水平有限,如果文中出现

    2024年02月11日
    浏览(13)
  • 数据分析15——office中的Excel基础技术汇总

    数据分析15——office中的Excel基础技术汇总

    这部分总结就是总结每个基础技术的定义,在了解基础技术名称和定义后,方便对相关技术进行检索学习。笔记不会详细到所有操作都说明,但会把基础操作的名称及作用说明,可自行检索。 本文对于大部分读者有以下作用 1、可以检索一些excel中常用的操作名称 2、获取of

    2024年02月12日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包