R语言导出数据和统计结果三线表到Word文档中(一文搞定)

科技   2024-09-19 21:43   河南  

大家好,我是邓飞。

今天介绍一下,如何在R语言中,将数据整理为三线表,并导出为word文档中。常用的三线表结果有数据三线表、汇总统计三线表、方差分析三线表、回归分析三线表。下面我们分别进行介绍。

1. 安装R包

这里的R包主要的功能实现是 flextable,功能强大,导出word方便。

如果没有安装,通过下面代码安装搞定。

install.packages("xtable")install.packages("flextable")

flextable 是一个功能强大且灵活的R语言包,用于创建美观且可定制的表格,主要用于报告和文档生成。flextable 提供丰富的格式化选项,可以轻松生成复杂的表格,能够导出到多种格式,包括Word、PowerPoint和PDF。

2. 准备数据

这里,使用我编写的R包 learnasreml,里面的数据 fm作为数据演示。

library(xtable)library(flextable)library(learnasreml)
data(fm)head(fm)
func <- function(x)(c(n = length(x),mean=mean(x,na.rm = T),max = max(x,na.rm = T), min = min(x,na.rm = T),sd=sd(x,na.rm = T),cv=sd(x,na.rm = T)/mean(x,na.rm = T)*100))

library(tidyverse)library(reshape2)tt = melt(fm,1:5)

数据如下:

3. 数据三线表

比如,我们将前几列,整成三线表的形式:

d1 = head(tt)re1 = flextable(d1)re1

word中显示如下:

4. 汇总统计三线表

汇总统计,这里用上面我编写的函数 func,统计最大值、最小值、平均值、标准差、变异系数。

数据汇总是数据分析的一个重要部分,其目的是将原始数据转化为更有意义的形式,以进行进一步分析或报告。R语言提供了丰富的数据汇总功能,可以帮助你快速而有效地对数据进行汇总、描述和可视化。

常用的数据汇总方法

  1. 描述性统计量

  • 均值中位数标准差四分位数等。

  • 数据分组汇总

    • 按照一个或多个变量对数据进行分组,然后计算合计、平均、频数等。

  • 频率表和交叉表

    • 用于显示分类变量的频数分布。

  • 数据透视表

    • 进行复杂的多维汇总分析。

  • 可视化

    • 常用的有柱状图、饼图、箱线图等。

    # 汇总统计a = aggregate(value~variable,tt,func)temp = cbind(type = a$variable,as.data.frame(a$value))re2 = flextable(temp)

    三线表结果如下:

    5. 方差分析三线表

    方差分析(Analysis of Variance, ANOVA)是一种统计方法,用于检测不同组别之间均值是否存在显著差异。它在各种研究领域(如医学、农业、心理学等)中广泛应用。ANOVA 通常用于以下情景:

    1. 单因素方差分析(One-Way ANOVA)

      比较单个因素(独立变量)的三个或更多水平(组别)。

    2. 双因素方差分析(Two-Way ANOVA)

      比较两个因素的交互作用。

    3. 重复测量方差分析(Repeated Measures ANOVA)

      用于处理具有时间依赖性或重复测量的数据。

    方差分析的基本假设

    • 正态性

      每组数据应该近似正态分布。

    • 同方差性

      不同组的数据应该有相似的方差。

    • 独立性

      各组数据应相互独立。

    方差分析的步骤

    1. 设定假设

    • 零假设((H_0)):

      各组别均值相等。

    • 备择假设((H_a)):

      至少有一组均值不同。

  • 计算统计量

    使用F统计量进行检验。

  • 结果解释

    • 如果p值小于显著性水平(如0.05),则拒绝零假设,说明各组别之间存在显著差异。

    • 如果p值大于显著性水平,则不拒绝零假设。

    这里,对Spacing和Rep和Fam进行三因素方差分析。

    # 方差分析
    mod1 = summary(aov(dj ~ Spacing + Rep + Fam, data=fm))re3 = flextable(xtable(mod1))

    三线表结果:

    6. 回归分析三线表

    这里,x变量是dj,y变量是h5,进行回归分析。

    # 回归分析
    mod2 = summary(lm(h5 ~ dj,fm))re4 = flextable(xtable(mod2) %>% round(3))

    因为小数比较多,所以用 round保留3位小数。

    7. 多元回归三线表

    多元分析,y变量是h5,x变量分别是 dj, h1, h2, h3, h4


    # 多元回归分析
    mod3 = summary(lm(h5 ~ dj+h1 +h2 +h3 +h4,fm))re5 = flextable(xtable(mod3) %>% round(3))

    8. 把结果导出word

    要把上面的结果,都导出到word中,可以用下面代码,一个表格,一个表格的导出,表格之间加一个空行,进行分割。

    library(officer)doc = read_docx()doc = body_add_flextable(doc,re1)doc = body_add_par(doc, value = "")doc = body_add_flextable(doc,re2)doc = body_add_par(doc, value = "")doc = body_add_flextable(doc,re3)doc = body_add_par(doc, value = "")doc = body_add_flextable(doc,re4)doc = body_add_par(doc, value = "")doc = body_add_flextable(doc,re5)doc = body_add_par(doc, value = "")print(doc,"d:/tt.docx")

    结果:

    完美666!

    想要更好的学习和交流,快来加入飞哥的知识星球,这是一个生物统计+数量遗传学+GWAS+GS的社区,在这里你可以向飞哥提问、帮你定学习计划、跟着飞哥一起做实战项目,冲冲冲。点击这里加入吧:飞哥的学习圈子


    资源推荐:

    1,快来领取 | 飞哥的GWAS分析教程

    2,飞哥汇总 | 入门数据分析资源推荐


    3,数量遗传学,分享几本书的电子版


    4,R语言学习看最新版的电子书不香嘛?


    5,书籍及配套代码领取--统计遗传分析导论


    6,飞哥的学习圈子


    育种数据分析之放飞自我
    本公众号主要介绍动植物育种数据分析中的相关问题, 算法及程序代码.
     最新文章