Как выполнить парный t-тест в R, когда все значения находятся в одном столбце? - PullRequest
0 голосов
/ 23 сентября 2018

Общий формат кадра данных для выполнения парного t-теста в R - это данное измерение, разделенное на два столбца, так что в каждой строке указывается один и тот же субъект или отдельный человек.Например:

 > #     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

Итак, на основании этого кадра данных, как я могу выполнить двусторонний парный t-тест в R?

1 Ответ

0 голосов
/ 23 сентября 2018

Как насчет какой-либо базовой функции 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)
...