美文网首页R
【R】批量T检验

【R】批量T检验

作者: Cdudu | 来源:发表于2020-07-27 22:58 被阅读0次

    注意事项

    1. 本代码适用于Student T检验,别的统计方法需要改代码
    2. 本代码中默认数据符合正态分布且方差齐,如果数据对这两项敏感,则需要提前检验

    数据准备

    1. 将数据按下表的形式整理好,表格中要包含测定指标分组信息,并且以列的形式存放
    2. 所有测定指标要放在一起
    Group BW SGR CAT SOD
    1 4 1.2 21 2.2
    1 5 1.4 22 2.3
    1 6 1.5 23 2.5
    2 14 2.2 33 3.5
    2 15 2.4 34 3.6
    2 16 2.5 35 3.7

    R代码

    #############################################
    ##
    ## 批量T检验
    ##
    ##-----------------------------------------
    ## Author : Cdudu
    ## Data   : 2020 7/27
    ############################################
    
    #清空目前环境中的变量
    rm(list = ls()) 
    
    
    library(readxl)
    
    #读入数据
    dat<-read_excel('sample.xlsx')
    
    #将分组转化为因子型
    dat$Group<-as.factor(dat$Group)
    summary(dat)
    
    #创建新表用于存放Mean,SD和显著性标记
    dat2<-data.frame(t1=as.character(1:3)) 
    
    #输入dat中应变量(待检验指标)的起始列数
    Star<-2
    
    #输入dat中应变量(待检验指标)的终止列数
    Over<-5
    
    #Mean,SD&P值计算
    for ( i in c(Star:Over)){                       
      means<-tapply(dat[[i]],dat$Group,mean)
      means<-sprintf('%.4f',round(means,4))  #小数点位数,注意'%.4f'和round()中的数字都要做对应修改
      SD<-tapply(dat[[i]],dat$Group,sd)
      SD<-sprintf('%.4f',round(SD,4))       #小数点位数,注意'%.4f'和round()中的数字都要做对应修改
      M.t<-t.test(dat[[i]]~Group,data=dat,var.equal=T) 
      pvalue<-M.t[[3]]
      if(pvalue>0.05){
        a<-paste(means,'±',SD)
        a[3]<-'NS'      
      }           
      else if(pvalue>0.01){
        a<-paste(means,'±',SD)
        a[3]<-'*'
      }
      else {
        a<-paste(means,'±',SD)
        a[3]<-'**'
      }
      dat2[i-(Star-1)]<-a
      names(dat2)[i-(Star-1)]<-names(dat[,i])
    }
    
    #行列转置
    dat3<-t(dat2)  
    
    #导出表格
    write.csv(dat3,'Result.csv')
    
    

    以上就是全部代码,实际操作中只需要两步
    1.将下面代码中的文件名换成你自己的

    dat<-read_excel('sample.xlsx')
    
    1. 在下面代码中输入测定指标开始和结束的列数,比如本例中测定指标放在第2-5列,那么Star就输入2,Over输入5
    #输入dat中应变量(待检验指标)的起始列数
    Star<-2
    
    #输入dat中应变量(待检验指标)的终止列数
    Over<-5
    

    剩下的代码就不用管啦

    EXCEL输出结果

    如果是将dat3输出到EXCEL,那么表格如下

    NULL V1 V2 V3
    BW 3±0.2 4±0.3 *
    SGR 3±0.2 3±0.2 NS
    CAT 3±0.2 3±0.2 **
    SOD 3±0.2 3±0.2 NS

    V1;V2即两个试验组,V3是显著性标记。

    • NS:p>0.05
    • *: 0.05>p>0.01
    • **: p<0.01

    当然也可以将dat2输出到EXCEL,那么表格如下

    NULL BW SGR CAT SOD
    V1 3±0.2 3±0.2 3±0.2 3±0.2
    V2 3±0.2 3±0.2 3±0.2 3±0.2
    V3 NS * ** NS

    相关文章

      网友评论

        本文标题:【R】批量T检验

        本文链接:https://www.haomeiwen.com/subject/gaatrktx.html