R中数据帧的列循环

问题描述 投票:0回答:3

我如何循环以在R中具有相似名称的列上执行相同的测试?

例如,我有三列,分别名为col30,col126,col145。我在想类似的东西:

x

for(i in x){

wilcox.test(col(i)〜level)

}

不起作用,并提供以下错误:

eval(predvars,data,env)中的错误:尝试应用非功能

r loops multiple-columns
3个回答
0
投票
x <- c(30, 126, 145)
for (i in x) {
    wilcox.test(df[,i] ~ level)
}

其中df是您的数据帧。


0
投票

这里是一个dplyr示例:

library(tidyverse)

df %>%
    summarise_at(vars(col30, col126, col145), wilcox.test, y = level)

0
投票

您可以使用apply函数代替for loop,并为所选列迭代相同的测试:

apply(df[, c(30, 126, 145)], 2, wilcox.test ~ level)

© www.soinside.com 2019 - 2024. All rights reserved.