![7bfd44394f586784086b03d6b9c690a8.png](https://i-blog.csdnimg.cn/blog_migrate/cf04f219edbc2dbe31a8ad06ca5f608a.jpeg)
![3a9c8eadb25bc3ad607d3074e0b47b7a.png](https://i-blog.csdnimg.cn/blog_migrate/c715932ef3e1c7ee9b395c07867729f6.jpeg)
R语言作为一门高级计算机语言,一开始就是为统计学方法的实现而生的,其统计功能相当强大。但对于科研小白来说,尤其是刚开始接触R语言的小伙伴可能会觉得它进行统计时输出结果并不友好,显得复杂而不太好理解,使用体验不如spss等软件。如果R语言能在做完统计的同时顺便直白告诉我统计结果,方便我把结论写到论文里就好了!还別说,这样的R包还真的有,它就是我们今天要介绍的report包!
一、report包简介
![d2d985abc2233cc6fc97d1a21b629096.png](https://i-blog.csdnimg.cn/blog_migrate/bc78cf5c8000785e401893c39ca984ec.jpeg)
report包其创建的初衷是为了弥合R的统计输出与论文写作中包含的格式化结果之间的差距。report包旨在根据相关样式指南(例如APA的样式指南)自动生成标准化和高质量的统计学报告,让使用R语言进行统计分析的人对输出结果一目了然。
01report包安装
由于report包目前仍托管在github上,因此我们需要github上R包的安装方式进行安装,代码如下,小伙伴们复制粘贴直接运行即可:
if(!require(devtools))install.packages("devtools")
devtools::install_github("easystats/performance")
devtools::install_github("easystats/parameters")
devtools::install_github("easystats/report")
02R包调用
安装好之后我们就可以进行调用了。
library(report)
二、使用方法
01 report包主要函数
(1)report():report包目前内置了一系列的函数,但“包”如其名,其主函数为report()。
使用report()函数可以创建一个报告对象,该函数有类似泛型函数的特点,可以根据我们输入的不同对象类型而调用相应参数进行解析。(2)report()函数的配套函数主要包括:①to_text():以文本形式显示此报告对象,默认情况下report()函数呈现的结果就是文本形式的。②to_table():以表格形式显示此报告对象③to_fulltext()和to_fulltable():显示访问更详细(但摘要较少)的报告版本。④to_values():显示报告中每一个数据对象的数值内容。
看到这,先别急着关掉文章呀喂,下面我们会进行举例演示,相信你能看懂~
02report包目前支持的统计学对象
(1)cor.test:相关分析
(2)t.test:t检验(3)glm:广义线性模型(4)lme4包中用于构建固定效应模型和随机效应模型的相关函数:如glmer、lmer (5)rstanarm包用于构建贝叶斯线性模型等函数,如stan_glm(6)其他:正在开发当中~report包的函数还有一个特点就是支持管道符操作,即可以使用“%>%”来串联代码,简直是懒人福音~
三、举例学习
01造一个用于分析的数据
![500e908a2f37677b6d307c3a60f29006.png](https://i-blog.csdnimg.cn/blog_migrate/fd1ac7380654643984ee9316110171aa.jpeg)
02数据一般性描述分析
![46640cf1816872f9ed41c3978f4a2971.png](https://i-blog.csdnimg.cn/blog_migrate/984b32e9a7026fd7a5e2b8e18c287cff.jpeg)
03 t检验
我们可以使用t检验分析数据框中,不同性别间收入是否具有统计学差异:
![63d2eb02cd54de6ffe83241592fab712.png](https://i-blog.csdnimg.cn/blog_migrate/96e56c1d2daa33374f5e6ed758f32397.jpeg)
注:数据符合正态性分布且方差齐,此处略过检验过程。
从上述结果来看,我们造的数据,不同性别间收入是没有差异的。那么下面请看一句话版本的统计结果。
![a7d7b9105f7a7ce2ec5a00c4bcb932eb.png](https://i-blog.csdnimg.cn/blog_migrate/c26fd9179b7692e72259224ff139c1e7.jpeg)
嗯,一句话说明问题,挺好,稍作修缮就可以写到论文里去了有没有!
04相关性分析我们还可以对收入和年龄进行相关性分析:
![1a6e5b582e58e94e9828ca07b2d2e5ad.png](https://i-blog.csdnimg.cn/blog_migrate/60555fc72f535adf860148baf094c118.jpeg)
从相关系数和P值来看,年龄和收入呈负相关,且具有统计学意义。
下面我们同样来看一句话版本:
![8918d05c59731d8b1b02493dc66e24dc.png](https://i-blog.csdnimg.cn/blog_migrate/3e65a4c7da2f8a37aa5193f3aaf79884.jpeg)
report函数告诉我们了,这里相关性分析用了Pearson相关(cor.test默认的方法),结果年龄和收入呈负相关,有统计学意义,并且相关性中等。
然后让我们输入表格版结果,同样一目了然:
![dcdfe854673780799892b55c7bcf2253.png](https://i-blog.csdnimg.cn/blog_migrate/c1c36f22662eff2d4050375d2dff3b76.jpeg)
相关性分析做完了,既然年龄和收入具有相关性,那么我们能不能用年龄来预测收入呢?当然可以,下面请看线性回归,这部分内容也将展示report包中其他几个主要函数的使用。
05线性模型
![7952e4f0fd329dff79a270bd65ed07d8.png](https://i-blog.csdnimg.cn/blog_migrate/4181b015cf830f750606d7163a39d42b.jpeg)
上述结果中,lm函数输出的结果比较简略,只有模型的截距和回归系数,我们可以通过summary函数展示更多信息。
![b599c60f64db270e009890bd990e12c1.png](https://i-blog.csdnimg.cn/blog_migrate/83d53b389e541bde07e0cf3ba1c84372.jpeg)
上面的结果就详尽了,可是复杂了不少,这里咱稍做解释,
❶ 0.8615 >表示拟合曲线有24个自由度,残差的标准差为0.8615。❷ Multiple R-squared: 0.1797与Adjusted R-squared:0.1455 分别表示决定系数(R2 )和校正决定系数(adjusted R2)用来评估模型的优劣。一般而言,R2越大,表示自变量的解释能力越强,模型就越好❸ F-statistic: 5.258 on 1 and 24 DF这表示F的统计量为5.258 ,1和24是两个自由度。❹ p-value:0.0309这是F统计量对应的p值。❺ Intercept为回归方程的截距,这里值为8004.26681❻ age对应的-0.09896 为回归系数 也就是说我们建立的模型为:收入(income)=-0.09896×年龄(age)+8004.26681
好了,那么如果写论文,怎么办,report包同样告诉你,三句话说明问题:
![7ee2adc546746f1b28cf30092d25e9f9.png](https://i-blog.csdnimg.cn/blog_migrate/9df79ddad9b54bdb4bad941be1de9b61.jpeg)
如果你嫌说的太短意犹未尽,那还可以看一个啰嗦一点的版本:
![d8f806fb1242999d31437094a0c43bf5.png](https://i-blog.csdnimg.cn/blog_migrate/d52c13fd52226925f30180193c4fbb46.jpeg)
当然想要简要表格版本也可以:
![45a36b29591b1418e197139a7e6fdb9d.png](https://i-blog.csdnimg.cn/blog_migrate/a8d0804d8957ac7827b0053cb8ca9a45.jpeg)
![b9592245fe64e6c1fe810220aadeb1d8.png](https://i-blog.csdnimg.cn/blog_migrate/105a5374ddc5ab94c6264b12511a9aed.jpeg)
想要详尽表格版本也行,统统安排上:
![84a29c60909516ec185adc20ad00cc00.png](https://i-blog.csdnimg.cn/blog_migrate/06c60cb2edbc71697e877e5c876f1d3a.jpeg)
![1f96ba9dbcafc18ef32f328185471eb8.png](https://i-blog.csdnimg.cn/blog_migrate/2dab60456c1949809fdb6337c492a730.jpeg)
当然精准汇报到每个数值的情况也可以,但是显得有点琐碎了,自己看看就行了,写到论文里还是欠妥的。
![a82b0e08895a0a62a80ba3520a4969a7.png](https://i-blog.csdnimg.cn/blog_migrate/0d4f7ce3ab3ecc6bf17959a3504109b4.jpeg)
后面还有很多数值内容,限于篇幅不做展示,感兴趣的小伙伴可以自己在R中运行代码查看。
四、小结
好了,以上对于report包的主要函数就介绍完毕了。作为一个新兴的R包,report包力求在R语言统计输出与论文写作中搭建信息转化的桥梁,这样的R包对科研小白来说无疑是可爱的。
当然,不可否认由于目前该包仍处在开发状态,还存在一些功能不完善的地方,作者在github上也呼吁喜欢的它的网友集思广益提出意见,促进其完善,更多功能我们拭目以待吧!
参考内容:https://github.com/easystats/report#supported-packages