Провести парный t-тест для данных в одном столбце - PullRequest
1 голос
/ 08 января 2020

Я пытаюсь провести парные t-тесты для переменных в одном столбце

Вот пример моих данных:

datexample <- data.frame(
  "time" = c("before","after"), 
  "site" = c("A","B","B","A","A","B","B","A"), 
  "valueA" = c("13","-10", "-5", "18","-14","12", "-17", "19"), 
  "valueB" = c("-3","20", "15", "-16","12","15", "-11", "14")
)

Который имеет такой вывод:

time    site  valueA valueB
before    A     13     -3
after     B    -10     20
before    B     -5     15
after     A     18    -16

Я пытаюсь выполнить четыре парных t-теста, чтобы проверить:

  1. T-тест, чтобы определить, есть ли разница в значении A между временем (до и после) на сайте A
  2. T-тест, чтобы определить, есть ли разница в значении B между временем (до и после) на сайте A
  3. T-тест на определить, есть ли разница в значении A между временем (до и после) на сайте B
  4. T-тест, чтобы определить, есть ли разница в значении B между временем (до и после) на сайте B

Чтобы выполнить t-тест, мне нужно изменить порядок своих данных таким образом, чтобы до и после каждого столбца (вместо того, чтобы находиться в столбце времени) ).

Я пытался посмотреть другие примеры , например:

dat_wide <- reshape(datexample, idvar = "time", timevar = "site", direction = "wide")
dat_wide

Но я получаю набор данных, который имеет только две строки и много столбцов:

time   valueA.A valueB.A valueA.B valueB.B
before       13       -3       -5       15
after        18      -16      -10       20

Любая помощь будет оценена.

1 Ответ

1 голос
/ 08 января 2020

Если мы хотим сделать t.test в столбцах «значение» для каждого «сайта», то после группировки по «сайту» выберите интересующие столбцы в summarise_at и выполните t.test, задав подмножество значения, где «время» - «до» / «после»

library(dplyr)
datexample %>%
    type.convert(as.is = TRUE) %>%
    group_by(site) %>% 
    summarise_at(vars(starts_with('value')), ~ 
       t.test(.[time == 'before'], .[time == 'after'])$p.value)
# A tibble: 2 x 3
#  site  valueA valueB
#  <chr>  <dbl>  <dbl>
#1 A      0.393  0.784
#2 B      0.464  0.439
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...