繁体   English   中英

嵌套循环或等效

[英]Nested loop or equivalent

我试图做一个嵌套循环,我从一个简单的循环开始,我想对不同的数据帧做同样的事情。

这项工作很好:

  set.seed(123)
    df1= data.frame(date= 1:10,
                vartre=rnorm(10, 30, 4),
                varpre=rnorm(10, 10, 5))

var=names(df1)

for(x in var ) {

plot(df1$date,df1[,x], type="l", main=x)

}

现在,我想对不同的df进行相同的处理,我尝试使用嵌套循环,但这不起作用,例如:

df2= data.frame(date= 1:10,
                varkyt=rnorm(10, 100, 40),
                varkdr=rnorm(10, 50, 5))

df3= data.frame(date= 1:10,
                varwer=rnorm(10, 300, 400),
                varpou=rnorm(10, 1000, 500))

dfs=c("df1", "df2", "df3")
for(i in dfs) {
var=names(i)
    for(x in var ) {
plot(i$date,i[,x], type="l", main=paste(i,x)))
}
}

提前致谢

我们可以用lapply地遍历listmget -返回list从字符串标识符data.frame)和阴谋

out <- lapply(mget(dfs), function(dat)  {
        var <- names(dat)[-1]
        lapply(var, function(x) plot(dat$date, dat[,x], type = "l",
           main = x))
     })

如果我们需要将其保存在文件夹中

path <- "path/to/folder/"
lapply(mget(dfs), function(dat)  {
        var <- names(dat)[-1]
        lapply(var, function(x) {

        png(filename=paste(path, "grafico", x,".png"))
          plot(dat$date, dat[,x], type = "l",
           main = x)
           dev.off()
           }
           )
     })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM