代码之家  ›  专栏  ›  技术社区  ›  Sergio Nolazco

当所有值都在一列中时,如何在R中进行配对t检验?

  •  1
  • Sergio Nolazco  · 技术社区  · 7 年前

    在per中形成配对t检验的数据帧的常见格式是将给定的测量值分成两列,以便每行表示相同的受试者或个体。 例如:

     > #     Before     After
        > #1      31        32
        > #2      22        34
        > #3      41        35
    

    然而,这并不总是在数据帧中呈现数据的情况。

    我有一个数据帧,它的结构非常常见,如下所示:

     subject <- c("A1", "A2" ,"A1" ,"A3" ,"A3" ,"A2")
        value <- c(34, 43, 25, 43, 54, 22)
        group <- c("before", "after", "after", "after", "before", "before")
    
        mydata <- data.frame(subject, value, group)
    
        #  subject value  group
        #1      A1    34 before
        #2      A2    43  after
        #3      A1    25  after
        #4      A3    43  after
        #5      A3    54 before
        #6      A2    22 before
    

    那么,基于这个数据框架,我怎样才能在R中进行双侧配对t检验呢?

    1 回复  |  直到 7 年前
        1
  •  2
  •   s__    7 年前

    一些R基函数的数据格式从长到宽呢

    # reshape from long to wide
    mydata_wide <- reshape(mydata, idvar = "subject", timevar = "group", direction = "wide")
    
    # rename columns
    colnames(mydata_wide)[2] <-"before"
    colnames(mydata_wide)[3] <-"after"
    
    mydata_wide
      subject before after
    1      A1     34    25
    2      A2     22    43
    4      A3     54    43
    
    # t-test
     t.test(mydata_wide$before,
           mydata_wide$after,
           paired=TRUE,
           conf.level=0.95)