做研究或者写论文时,常会被一些琐碎的事情拖慢进度。
R包{rempsyc}的作者也是深受其累,所以他开发了一个直接输出符合学术论文规范(APA Style 7th Edition)表格的函数,尽可能简化统计分析后的制表过程!install.packages("rempsyc")
library(rempsyc)
# 下方为载入代码,如果没安装过:install.packages("broom")
library(broom)
将用到R自带的mtcars数据集,简化并处理一下数据:
mydata <- cbind(rownames(mtcars[1:6,]), mtcars[1:6,]) # 提取原数据前6行的行名称作为新的变量,并与原数据前6行拼接
colnames(mydata)[1] <- "Car_names" # 修改第一列的名称
mydata
上述代码中,提取了mtcars中的前六行,将原来的行名称转换为新变量Car_names,与原来的数据拼接在一起。my_table <- nice_table(mydata,
title = "Table1. Motor Trend Car Road Tests",
note = c("Henderson and Velleman (1981), Building multiple regression models interactively. Biometrics, 37, 391–411."))
my_table
符合APA规范的表格就做好了!nice_table()能将data frame转化成表格,需要注意不能有重复的列名。
print(my_table, preview = "docx")
如果想直接导出word文件到自己的工作路径。需要使用{flextable}中的函数:flextable::save_as_docx(my_table, path = "Table1.docx")。【{flextable}的介绍可以看往期:跪了!R居然可以自动输出统计结果并形成论文表格?!】t_test <- nice_t_test(mydata,
response = c("mpg", "hp", "wt"),
group = "vs") # 默认为 Welch t-test
t_test
上述代码中使用{rempsyc}里的nice_t_test(),输出的结果已经比较简洁了,可以直接将其做表:
my_table1 <- nice_table(t_test)
my_table1
也可以使用之前的代码转成word,指定对象为my_table1即可,完整代码为:print(my_table1, preview = "docx")。如果拟合了线性回归模型,想将其结果制作表格,也可以实现。这次使用R自带的iris数据集,大致查看一下数据:
mymodel <- lm(Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width + Species, iris)
summary(mymodel)
nice_table(tidy(mymodel), broom = "lm")
上述代码中,tidy()为R包{broom}中的函数,它将原来的统计模型mymodel转化成更整洁的结果,为tibble格式(与data frame类似),再通过nice_table()将其变成表格。不知道这些好用R包之前,小编们都是手动将模型结果逐一“复制粘贴”到表格里,真的很容易出错。一把辛酸泪!my_table2 <- nice_table(tidy(mymodel),
broom = "lm",
highlight = 0.01,
stars = TRUE, # 是否显示*
title = "Iris Dataset",
note = "* p < .05, ** p < .01, *** p < .001")
my_table2
上述代码中,对表格的样式进行了一些修改,比如添加了高亮部分,增加表格题目和注释,是否显示*。如果想快速复制表格到word,指定对象为my_table2即可,代码为:print(my_table2, preview = "docx")。好啦,今天的内容就到这里。如果有帮助,记得分享给需要的人![1]. Thériault, R. (2023). rempsyc: Convenience functions for psychology. Journal of Open Source Software, 8(87), 5466. https://doi.org/10.21105/joss.05466
【通过公众号菜单栏--线上课程--新手课程/回归课程】公众号核心成员担任SCI杂志Associate Editor!▌课程相关咨询可添加R师妹微信: kefu_rstats