R中数据帧的列循环

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R中数据帧的列循环相关的知识,希望对你有一定的参考价值。

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

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

x

for(i in x){

wilcox.test(col(i)〜level)

}

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

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

答案
x <- c(30, 126, 145)
for (i in x) {
    wilcox.test(df[,i] ~ level)
}

其中df是您的数据帧。

另一答案

这里是一个dplyr示例:

library(tidyverse)

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

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

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

以上是关于R中数据帧的列循环的主要内容,如果未能解决你的问题,请参考以下文章