首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图的生成与R中的自动存贮

图的生成与R中的自动存贮
EN

Stack Overflow用户
提问于 2015-02-21 18:35:42
回答 1查看 1.3K关注 0票数 2

我创建了一个标题名列表,然后修改了我找到的这里函数

代码语言:javascript
复制
mcollist<-list(A,B,C,D)# where A,B,C and D are dataframes
namelist<-c("A","B","C","D")
for(i in 1:length(namelist)){

mypath <- file.path("C:","Users","myname","Desktop","PLOTS",paste("myplot_", namelist[i], ".jpeg", sep = ""))
  
  jpeg(file=mypath)
  mytitle = paste("my title is", namelist[i])
  multicolplot<-lapply(mcollist,function(data){pairs(data)})##this is a function that is creating multicollinearity plot for multiple 
  ##datasets stored as a list in 'mcollist'. 
  dev.off()
}

当我得到正确的“情节数目”时,也就是我创建的列表中的名字一样多。地块都是相同的数据集。我没有发现任何错误,所以我不知道问题在哪里

要多次保存的同一绘图是多个功能在其上运行的最后一个图。

编辑

使用相同的函数保存Correlogram,将无法工作

代码语言:javascript
复制
    for(i in 1:length(data1)){
  
  
  mypath <- file.path("C:","Users","myname","Desktop","PLOTS",paste("myplot_", data1[i], ".jpeg", sep = ""))
  
  
  jpeg(file=mypath)
  mytitle = paste("Correlogram for", data1[i])
{
    a`cf(data1[,i],na.action=na.pass,main=paste(names(data1)[i]))`
  }
dev.off()
}

Data1是一个包含变量(作为列)的数据文件,我希望在其上运行由以下代码实现的acf测试:

代码语言:javascript
复制
acf(data1[,i],na.action=na.pass,main=paste(names(data1)[i]))

它在data1的每个列上运行acf,忽略'na‘值,然后粘贴来自data1列名的名称。

我得到以下错误:

代码语言:javascript
复制
    Error in jpeg(file = mypath) : unable to start jpeg() device
In addition: Warning messages:
1: In jpeg(file = mypath) :
  unable to open file 'C:/Users/myname/Desktop/PLOTS/myplot_c(0.62, 1.13, 2.53, -0.97, 0.82, 3.9, 1.77, -0.85, 2.57, -1.1, 1.67, 1.38, 0.67, 2.73, 1.32, 0.84, 0.65, 0.96, -0.86, 0.97, 0.7, 1.05, -0.26, 0.04, 1.14, 1.46, 2.08, 1.2, 2.53, 2.49, 2.79, 2.16, 2.3, -1.29, 0.49, -1.28, 1.78, 1.26, -1.71, -3.89, 1.45, 2.2, 2.26, 1.13, 2.82, 0.83, -0.91, -0.02, 0.79, 0.71, 0, 1.37, 2.81).jpeg' for writing
2: In jpeg(file = mypath) : opening device failed

谢谢你的帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-21 19:33:06

代码中的问题是,您试图使用两个循环(显式循环和隐式循环,分别使用for循环和隐式循环lapply循环)来迭代一个列表。因此,您可以简化代码,如下面的示例所示:

代码语言:javascript
复制
namelist<-c("A","B","C","D")

mcollist <- split(as.data.frame(matrix(runif(60),ncol=3)),rep(1:4,each=5))
names(mcollist) <- namelist

for(i in 1:length(namelist)){

  jpeg(file=sprintf('~/RR%s.jpeg',namelist[i]))
  mytitle = paste("my title is", namelist[i])
  pairs(mcollist[[i]],main=mytitle)
  dev.off()
}

它生成四个具有不同情节的文件(这里只显示了前两个):

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28649680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档