[英]Rename objects in for loop in R
学习R时,如果可能的话,提供一些简短的指导:
创建for
循环绘制一组直方图:
for ( i in 1:10) {
p <- ggplot(data, aes(x=data[,i], fill=Group)) +
geom_histogram(binwidth=200, alpha=.5, position="dodge")
print(p)
p[i] <- p
}
我想给p
分配不同的名称,以便以后分别调用这些图。 我本以为加p[i] <- p
就足够了。 我正在犯什么错误? 谢谢大家!
每次从ggplot中对p进行的第一个赋值都会重置p,并且p[i] <-p
无法工作,因为它是赋值双方的同一对象。 您要使用:
pList <- list()
for ( i in 1:10) {
p <- ggplot(data, aes(x=data[,i], fill=Group)) +
geom_histogram(binwidth=200, alpha=.5, position="dodge")
print(p)
pList[[i]] <- p
}
然后,您可以使用p[[1]]
等访问不同的图。
另一种选择是使用assign
for ( i in 1:10) {
assign(paste0("plot", i), ggplot(data, aes(x=data[,i], fill=Group)) +
geom_histogram(binwidth=200, alpha=.5, position="dodge") )
}
这将在全局环境中将每个图创建为一个不同的对象( plot1
, plot2
, plot3
...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.