如何在函数中包含循环?
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。
正如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)
只会告诉你结果,而不保存它。