今天浏览R包,发现一个不错的包——DescrTab2包。
看R包介绍,这个包可以绘制出版物质量级别的描述统计表。
看起来很不错。
下面来学习下。
1. R包安装和加载
install.packages("DescrTab2") # 安装包
library(DescrTab2) # 加载包
2. 加载演示数据集
library(magrittr) # 加载R包
dat "Species", "Sepal.Length")]
# 选择iris数据集的"Species", "Sepal.Length"变量另建一个dat数据集
dat %<>% mutate(animal= c("Mammal", "Fish") %>% rep(75) %>% factor())
# 在dat数据集中新建一个分组变量animal,水平为"Mammal", "Fish"。
dat %<>% mutate(food= c("fries", "wedges") %>% sample(150, TRUE) %>% factor())
# 在dat数据集中新建一个分组变量food,水平为"fries", "wedges"。
dat
在数据集中,有150行数据,4个变量,其中Species、animal、food这三个变量为分组变量,Sepal.Length变量为连续变量。
3. 创建描述统计表
在DescrTab2包,使用descr()函数来创建统计描述表。
直接将数据集放在函数中即可创建简单的统计描述表。
descr(dat)
如上图所示,就简单的创建了一个描述统计表。
上面结果总共输出了4列数据。
第一列为变量,包括连续变量和分类变量。连续变量的结果有例数、均数、标准差、中位数、四分位间距、极差等;分类变量则显示每个分类水平。
第二列变量显示第一列各数据的数值;
第三列显示P值;
第四列显示P值的计算方法,分类变量为卡方拟合优度检验,连续变量为单样本t检验。
4. 访问表格元素
如果我们需要获取表格中的某些统计数值,可以将descr(dat)传递给一个参数,这个参数是一个list列表,然后再读取其中的数值。
# my_table是一个list列表。
my_table
# 可以使用$符号访问my_table中的结果
my_table$variables$Sepal.Length$results$Total$mean
# [1] 5.843333
5. 指定分组变量
上面我们是没有添加分组变量的,现在我们在描述统计表中添加一个分组变量看看。
比如说在描述统计标准中添加Species分组变量。
descr(dat, "Species")
如上图所示,多组连续变量执行F检验,单因素方差分析。多组分类变量,也就是列联表资料,执行皮尔逊卡方检验。
6. 添加组标签
可以给上图中的行变量和分组变量分别添加标签,换句话说就是修改这些变量的名称。
descr(dat, "Species",
group_labels=list(setosa = "setosa自定义",
versicolor = "versicolor自定义",
virginica = "virginica自定义"),
var_labels = list(Sepal.Length = "Sepal.Length标签",
animal = "animal变量",
food = "food标签"))
7. 计算两组比较的置信区间
如果分组变量是二分类变量,函数会自动计算并输出置信区间的数值,三分类变量及以上就不会输出了。
descr(dat, "animal")
8. 指定统计检验方法
上面执行的统计检验方法都是默认的,也可以执行我们指定的统计检验方法。
更多的统计检验方法选择:https://imbi-heidelberg.github.io/DescrTab2/articles/test_choice_tree_pdf.pdf
# 去掉数据集中的"Species"变量,余下的变量执行精确检验和非参数检验
descr(dat %>% select(-"Species"), "animal",
test_options = list(exact=TRUE, nonparametric=TRUE))
分组变量为animal,Sepal.Length变量执行Mann-Whitney U test,food变量执行Boschloos test。
descr(dat %>% select(c("Species", "Sepal.Length")), "Species",
test_options = list(nonparametric=TRUE))
同上。
9. 配对设计t检验
在配对设计中,分组变量通常跟时间有关,比如说某一处理前后的比较。
在这种情况下,你需要设置索引变量来指定哪些不同时间点的观察值需要进行配对。
descr(dat %>% mutate(animal = fct_recode(animal, Before="Fish", After="Mammal"))
%>% select(-"Species"), "animal",
test_options = list(paired=TRUE, indices=rep(1:75, each=2)))
10. 设置有效数字
DescrTab2包中的每部分摘要统计信息都可以通过相应的参数进行设置。
比如说设置均数和标准差的有效数字。
descr(dat, "Species",
format_summary_stats = list(
mean=function(x)formatC(x, digits = 4),
sd = function(x)formatC(x, digits = 5))
)
11. 合并均值和标准差
使用format_options = list(combine_mean_sd=TRUE)
即可。
descr(dat, "Species", format_options = c(combine_mean_sd=TRUE))
有兴趣的可以点击阅读原文进行更深入的学习。
参考资料
- DescrTab2包帮助文件
既往专辑