L oop над столбцами данных в R - PullRequest
0 голосов
/ 17 февраля 2020

Как я могу l oop выполнить один и тот же тест над столбцами с похожими именами в R?

, например, у меня есть три столбца с именами col30, col126, col145. Я думал что-то вроде:

x <- c(30, 126, 145)

for (i in x) {

  wilcox.test(col(i) ~ level)

}

не работает и выдать следующую ошибку:

Ошибка в eval (predvars, data, env): попытка применить не-функцию

Ответы [ 3 ]

1 голос
/ 17 февраля 2020

Вот пример dplyr:

library(tidyverse)

df %>%
    summarise_at(vars(col30, col126, col145), wilcox.test, y = level)
1 голос
/ 17 февраля 2020

Вы можете использовать функцию apply вместо for loop и повторить тот же тест для выбранных столбцов:

apply(df[, c(col30, col126, col145)], 2, wilcox.test ~ level)

0 голосов
/ 17 февраля 2020
x <- c(30, 126, 145)
for (i in x) {
    wilcox.test(df[,i] ~ level)
}

где df - ваш фрейм данных.

...