[英]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
地遍历list
( mget
-返回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.