Как запустить t-тест на пары столбцов в dataframe в R? - PullRequest
0 голосов
/ 05 мая 2019

У меня есть датафрейм с 6 столбцами числовых данных. Я хочу запустить t-тест для пар столбцов в форме; первый + второй столбец, третий + четвертый столбец, пятый + шестой столбец, пока у меня не будет 3 t-критерия p-значений, которые я могу сохранить в новом фрейме данных.

Я знаю, что могу получить столбцы с помощью select (), и я могу извлечь p-значения с помощью t.test (x, y) $ p.values. Но я не могу найти хороший способ автоматизировать это в цикле for.

Я думал сделать что-то вроде этого:

p-values <- for (i in select(dataframe,-1) t.test(i,?)$p.value

Для начала, но не знаю, куда идти.

Ответы [ 2 ]

1 голос
/ 05 мая 2019

Хороший подход - создать индекс столбцов, как это сделал Реми Куло. Вот вариант, который создает тот же индекс и возвращает парные p-значения напрямую:

  df <- as.data.frame(matrix(rnorm(36), nrow = 6, ncol = 6))
  indices <- matrix(seq_len(ncol(df)), nrow = 2)
  p.values <- apply(indices, 2, function(idx) t.test(df[idx])$p.value)
1 голос
/ 05 мая 2019

Быстрый ответ будет:

df <- matrix(rnorm(18), nrow = 3, ncol = 6)
p <- ncol(df)
indices <- cbind(seq(1, p, 2), seq(2, p + 1, 2))

for(i in 1:(p/2)){
  print(t.test(df[,indices[i,]])$p.value)
}

Это работает, только если у вас есть числовая пара столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...