对于循环作为R中的函数

问题描述 投票:0回答:1

如何在函数中包含循环?

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。

r function loops
1个回答
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)只会告诉你结果,而不保存它。

© www.soinside.com 2019 - 2024. All rights reserved.