如何循环本地功能?

时间:2019-02-13 15:53:15

标签: r function loops

我在R中做了一个要循环的函数。我已经获得了在单个案例中可以使用的功能。我无法获得该函数来返回该函数产生的数字向量。

vec_fun5 <- function(x,y){
  Vec <- c(round(mean(x[[y]],na.rm=T),2),nrow(na.omit(x[,y])),length(which(x[,y]==1)),length(which(x[,y]==2)),length(which(x[,y]==3)),length(which(x[,y]==4)),length(which(x[,y]==5)))
  return(Vec)
}

for(i in 20:24){
  vec_fun5(x,i)
}

我想用循环产生的所有矢量产生一个数据帧。

1 个答案:

答案 0 :(得分:1)

也许您可以尝试将函数创建的对象放在列表中:

vec_save <- list()

ii <- 1
for(i in 20:24){
 vec_save[[ii]] <- vec_fun5(x,i)
 ii <- ii+1
}

此后,如果您想cbindrbind感兴趣的向量以获得单个数据帧,则可以运行:

df <- do.call("cbind", vec_save) #assuming that you want to bind them by column