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中另一个数据帧的列标题名称有条件地创建新列
对于要求,我需要通过从该数据帧的列中的列表中的值创建行来将数据帧转换为 [重复]