对于循环作为R中的函数

时间:2018-03-02 09:33:57

标签: r function loops

如何在函数中包含循环?

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。

1 个答案:

答案 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)只会在不保存结果的情况下显示结果。