R语言一键制作数据统计三线表(一)

Python013

R语言一键制作数据统计三线表(一),第1张

描述统计是统计学重要的一部分内容,尤其是在医学中的应用更广。很多医学、或者做统计的SCI文章,开头就是统计的内容,一般是由三线表的方式呈现的。之前我也只会用excel统计然后自己制作表格,但这样效率很慢。这里我们介绍一个R包---table1,可以非常简单快速的完成统计工作,并制出三线表!

安装包和示例数据

数据就是一般的描述数据,性别、status都是用数字表示的

对数据进行转化,将sex等换成字符

之后作图,分组用status,table1函数的用法具体可参考帮助函数!一般格式为~不同变量+变量+......|分类变量,data。

如果用性别做分类变量,则效果如下。

还可以为变量加上单位或者改变变量名

最后得到的表格可以复制,直接粘贴到PPT或者AI中进行编辑整理!

下节我们将继续说说table1制作统计表并添加统计分析,以及对表格的各种样式调节!

    前两期简单介绍了 R 语言基础 ,比较简单粗略,然后介绍了 R 语言中表格的转换 ,因为现在绘图基本以及舍弃了基本绘图的方式,都会选择 ggplot2 来作图,这期SCI绘图介绍一下柱状图

柱状图一般用于,当我们都有一组分类变量以及每个类别的定量值,而我们关注的主要重点是定量值的大小时。应该在柱状图背景保留横网格线,便于比较我们关注的值。

当分类label过长时,最好选择横向柱状图,避免出现旋转label,保持文字阅读方向与图形方向的统一性。

应该注意对柱状图进行排序(大小,分类变量,分布)。

ggplot2中柱状图的基本绘制函数有两个,如下:

geom_bar() 产生的柱状图映射是经过统计变换的(count, ..prop..);

geom_col()是不经过统计变换的,代表的就是该分类变量的实际值。

柱状图使用高度来表示一个值,因此必须始终显示柱状图的底部,以产生有效的视觉比较。使用柱状图转换后的刻度时要小心。始终使用有意义的参考点作为杆的底部是很重要的。例如,对于日志转换,参考点是1。事实上,当使用对数尺度时,geom_bar()会自动将杆的底置为1。

以每个x在数据集中出现的总数为y轴。

ggplot2中一般数据和视觉元素映射是分开的,如果需要对柱状图排序,就需要对数据进行排序处理。数据的处理及转换可以参考公众号 FigDraw 3. SCI 文章绘图必备 R 数据转换

参数color控制外框颜色,fill控制填充颜色。

当数据分组标签名字过长时,有一种方法是将label旋转,这样它们就不会互相重叠。

分组作图的默认position 是 position = "stack",fill参数表示将数据映射为填充颜色,color参数表示将数据映射为外框颜色。

利用lwd参数增加外框线宽度,然后将外框线颜色和背景色统一,就可以形成堆叠间有间隔的柱状图。

比较各组中每个类别出现次数在该组中占的百分比

比较各组中每个类别实际值在该组中占的百分比。由于数据集data中的count就是数据集mpg中每个组别的出现次数,因此图片是一样的。

在aes()内部的width控制柱子的宽度,position = position_dodge()中的width控制的是一组中各柱子的间隔宽度。

并排的柱状图误差线和单个的相同,但需要注意一些参数。用position_dodge() 产生的并排柱状图,需要给误差线一个分组依据,然后进行的potion调试。

金字塔图的核心就是找到需要分开的变量,然后以它为依据对数据进行正和负变换,然后将正负坐标轴强制设置成对应的正值。

当柱状图非常高,展示时可以选择截断坐标轴,形成只有底部和上部的中断柱状图。创建y轴截断的plot,如下:

  点击关注,桓峰基因

目前整理出来的教程目录如下:

FigDraw 1. SCI 文章的灵魂 之 简约优雅的图表配色

FigDraw 2. SCI 文章绘图必备 R 语言基础 

FigDraw 3. SCI 文章绘图必备 R 数据转换

FigDraw 4. SCI 文章绘图之散点图 (Scatter)

FigDraw 5. SCI 文章绘图之柱状图 (Barplot)

FigDraw 6. SCI 文章绘图之箱线图 (Boxplot) 

FigDraw 7. SCI 文章绘图之折线图 (Lineplot)

折线图同样是应用非常广泛的统计图之一,通过折线图可以反映某种现象的趋势。通常折线图的横坐标是为时间变量,纵坐标则是一般性的数值型变量,当然,折线图也允许横坐标为离散型数值和数值型数值。下面来解释一下关于折线图的绘制。

geom_line()绘制折线图,参数不是很多,基本上就是五个用于调整线粗细,颜色,分组,线条样式,以及分组等。每个参数详细的说明如下:

下面我们就绘制有关时间序列的折线图。

该数据集来自上的美国经济时间序列数据。经济学是“宽”的形式,而economics_long是“长”的形式。一个包含574行和6个变量的数据框架:数据收集月份pce个人消费支出,以十亿美元计,https://fred.stlouisfed.org/series/PCE pop总人口,以千计,https://fred.stlouisfed.org/series/POP psaving个人储蓄率,https://fred.stlouisfed.org/series/PSAVERT/最高失业持续时间中位数,一个类tbl_df的对象(继承自tbl, data.frame),有2870行和4列。

我们从绘制单条折线图到最后的堆积面积图组合等,由简入深地讲解每个参数的细节。

折线图中添加标记(点)

当数据点密度比较小或采集分布(间隔)不均匀时,为折线图做上标记将会产生非常好的效果。处理的方法非常简单,只需在折线图的基础上再加上geom_point()函数即可。从图中就可以非常明显的看出,刚开始采集的点分布非常散,而后面采集的点就比较密集,这也有助于对图的理解和应用。

上面绘制的都是单条这折线图,对于两个或两个以上的折线图该如何绘制呢?也很简单,只需将其他离散变量赋给诸如colour(线条颜色)和linetype(线条形状)的属性即可,具体参见下文例子。

不同的线条颜色color

不同的线条样式linetype

自定义颜色,线条,点的形状,点的填充色等,如下:

用色彩表现分组变量是最常用的形式,默认配色方案只需要调用就行。可以用于折线图的DIY配色函数为 scale_colour_manual(),参数包括:palette:调色板设计,里面包含很多颜色,供values = 调用。

values:色彩值,可以是cols <- c("a" = "red", "b" = "blue", "c" = "darkgreen"),此时分组变量和色彩映射一一对应也可以是cols <- c( "red", "blue", "darkgreen"),此时分组变量和色彩依靠顺序进行映射。

labels:分组标签,各个颜色代表的组别。

name:legend的名字。

breaks:设置组别,元素需要和labels一样多。

limits:影响的是图形上显示的元素,如果limits里面有4个元素,但实际只有2个分组变量,那么会出现两个NA值。

其中,colour设置面积图边框的颜色;size设置边框线的粗细;alpha设置面积图和边框线的透明度。

同样需要注意的是,在绘制多条折线图时,如果横坐标为因子,必须还得加上‘group=分组变量’的参数,否则报错或绘制出错误的图形。

以上绘制的折线图,均采用默认格式,不论是颜色、形状、大小还是透明度,均没有给出自定义的格式。其实ggplot2包也是允许用户根据自己的想法设置这些属性的。

自定义参数说明可以通过自定义的方式,想怎么改就可以怎么改。前提是aes()属性的内容与自定义的内容对应上。

绘制堆叠的面积图只需要geom_area()函数再加上一个离散变量映射到fill就可以轻松实现,先忙咱小试牛刀一下。

修改填充色fill和顶部加线color,如果需要为每一块面积图的顶部加上一条直线,可以通过如下两种方式:

其中,colour设置面积图边框的颜色;size设置边框线的粗细;alpha设置面积图和边框线的透明度。

添加堆积面积图顶部的线条

在面积图中,也可以方便快捷的绘制出百分比堆积面积图,具体操作如下:

添加百分比堆积面积图顶部的线条

我们将堆积面积图进行组合,如下: