如何在函数中包含循环?
EntEC1是df有12行和5个变量。
循环本身就是:
for(i in 1:11){
aa <- cor(as.numeric(EntEC1[i,2:5]),as.numeric(EntEC1[i+1,2:5]))
EntEC1$cor[i] <- aa
}
但是当我尝试创建一个函数调用Co
时它没有运行Co <- function(x){
for(i in 1:11){
aa <- cor(as.numeric(x[i,2:5]),as.numeric(x[i+1,2:5]))
x$cor[i] <- aa
}
}
Co(EntEC1)
它不起作用。我们的想法是用函数x替换循环中的EntEC1。
答案 0 :(得分:0)
根据Andre Elrico的建议,您可以将x$cor[i] <- aa
更改为x$cor[i] <<- aa
。
但是,您的功能问题是它不会返回任何结果。为此,您应该更改如下:
Co <- function(x){
for(i in 1:11){
aa <- cor(as.numeric(x[i,2:5]),as.numeric(x[i+1,2:5]))
x$cor[i] <- aa
}
return(x)
}
现在,要使用结果替换数据框,您应该:EntEC1 <- Co(EntEC1)
Co(EntEC1)
只会在不保存结果的情况下显示结果。