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中数据帧的列循环的主要内容,如果未能解决你的问题,请参考以下文章

如何根据一个数据帧中的列值和R中另一个数据帧的列标题名称有条件地创建新列

将其他数据帧中的值获取到新数据帧的循环中

对于要求,我需要通过从该数据帧的列中的列表中的值创建行来将数据帧转换为 [重复]

用于“左连接”两个数据帧的惯用 R 方法

如何制作 20 个数据帧的马赛克图并将它们放在 r 中的一页中?

R中多个数据帧的相同功能