简介
觉得基础作图的 R 代码太啰嗦,不成体系(R基础作图合集)?觉得 ggplot2 还是太复杂了不适合自己(ggplot2合集)?那有没有更简单点的?比如说,最好是躺着就能出图的那种。
今天小编就来介绍一个 R 包,名字叫ggstatsplot[1]。
1. R包的安装和载入
代码语言:javascript复制install.packages("ggstatsplot")
install.packages("rstantools") # 使用到里面的函数
install.packages("afex") # 使用到里面的函数
library(ggstatsplot) # 只需载入一个包
R 包 get!接下来会一一介绍里面包含的几个主要函数。
2. ggbetweenstats(): 多组间的均数比较
首先以多组间的均数比较为例,从而验证是否真的可以一行代码作图。
接下来会用到R中自带的iris
数据集,新来的小伙伴可以使用?iris
或者使用F1键了解(如何使用R语言自带的帮助功能?)。
代码语言:javascript复制可以看庄小编的Rstudio快捷键帮助文档:Rstudio常用快捷键以及窗口操作有用技巧;Rstudio界面介绍(上);Rstudio界面介绍(下)
ggbetweenstats(data = iris, x = Species, y = Sepal.Length)
真是太牛了!只打了一行代码,你却给我这么多!太不公平了!不过!上面图片里信息太多了,它们到底分别代表什么意思?请看下图:
总而言之,图片上面的部分代表传统的统计学方法(Frequentist)的一些统计值,下面的部分代表贝叶斯(Bayesian)的一些统计值。
注:文章末尾会介绍如何简化图片的输出信息,比如去掉贝叶斯的内容。现在继续了解其他函数。
3. ggwithinstats():重复测量
一个组别如果分别在多个时间点被采集数据,这种情况就归属于重复测量设计,就不能采用上述的多组间均数比较了,因为已经违反了独立性的原则。在这种情况下,可以这么作图:
代码语言:javascript复制ggwithinstats(data = iris, x = Species, y = Sepal.Length)
需要注意的是,为了演示,小编还是使用iris的数据集,而在重复测量的数据里,x轴通常指的是不同的时间。上图中的红色线条即为了注明它们之间是配对的。
4. ggscatterstats():散点图
在研究两个连续变量的时候,散点图可以呈现两者间的关系。下面也是一行搞定:
代码语言:javascript复制ggscatterstats(data = iris, x = Sepal.Length, y = Sepal.Width)
除了显示散点图,还分别画出了两个变量各自的直方图从而可以观察它们的分布情况,非常的实用!
5. gghistostats():直方图
如果有一个连续变量,想要观察它的分布情况,以及通过单样本t检验[R语言统计篇-单样本t检验]去比较是否与一个特定的值有差异,那么可以这么做:
代码语言:javascript复制gghistostats(data = iris, x = Sepal.Length, test.value = 6)
6. ggcorrmat():多个变量的相关图
要一下子呈现多个连续变量的关系,可以选择相关矩阵[R语言画展ggplot2篇-相关矩阵图]。下方也是使用 iris
数据集,首先需将 Species
这个变量先剔除,然后作图:
ggcorrmat(data = iris[, -5])
也是非常的实用,尤其在探索性分析阶段。默认使用 Pesrson 相关分析(参数性检验),上述中含有 X 的方框,表示没有统计学意义。
7. ggpiestats():饼图
如果有两个分类变量,想要通过卡方检验进行率的比较,那可以采用饼图的形式作图。使用到mtcars
数据集:
ggpiestats(data = mtcars, x = am, y = vs)
8. ggbarstats():呈现分类变量的柱状图
除了使用上面的饼图,还可以使用柱状图:
代码语言:javascript复制ggbarstats(data = mtcars, x = am, y = vs)
9. ggcoefstats():将回归系数作图
比如,建立了一个线性回归模型,现在想要将自变量的回归系数进行作图,那可以这么做:
代码语言:javascript复制mymodel <- lm(mpg ~ cyl disp hp, data = mtcars)ggcoefstats(mymodel) # 将回归系数作图
10. 一行代码搞定一切?天下没有这么容易的事情!
虽然说梦想是一行代码搞定一切,但现实中是不可能的!下面举一个例子,如何进一步调整输出的图片从而满足自己的需求。
以第4部分的散点图为例:
比如,研究中没有用到贝叶斯,所以想要将图片下方的一串统计值删除,并且觉得Sepal.Length这个变量并不符合正态分布,所以选择Spearman相关(默认是Pearson相关),那么可以这么做:
代码语言:javascript复制ggscatterstats(data = iris, x = Sepal.Length, y = Sepal.Width, bf.message = FALSE, # 去除贝叶斯相关的统计值 type = "nonparamatric") # 选择非参数检验
这里只是举了一个小例子,这个包还可以对很多参数进行修饰,由于篇幅有限,无法一一介绍。感兴趣的朋友可以查阅下方的参考文献。
- An Introductory Tutorial[2]
这篇给出了大量的例子,并且可交互动画演示的。非常值得学习!
参考资料
[1]
ggstatsplot: https://github.com/IndrajeetPatil/ggstatsplot
[2]
An Introductory Tutorial: https://indrajeetpatil.github.io/ggstatsplot_slides/slides/ggstatsplot_presentation.html
推荐: 可以保存以下照片,在b站扫该二维码,或者b站搜索【庄闪闪
】观看Rmarkdown系列的视频教程。Rmarkdown视频新增两节视频(写轮眼幻灯片制作)需要视频内的文档,可在公众号回复【rmarkdown
】