首页 文章

R函数因不相关的图例错误消息而停止

提问于
浏览
0

我写了一个包含多个子功能的函数 . 子功能都完全像下面的那个:

Lfunction <- function(mydata, mydata.hex) {

mydata.Lest <- Lest(mydata)

mydata.hex.Lest <- Lest(mydata.hex)

pdf(file="Lplot.pdf")

plot(mydata.Lest, xlim=c(0,200), ylim=c(0,200), main="L Function", xlab="Distance Between Particles (r)", ylab=expression(paste(L(r))), legend = legend(x=165, y=30, c("CSR", "mydata", "mydata.hex"), lty = c(2,1,4), col = c("red", "black","blue"), border = "black"))

plot(mydata.hex.Lest, xlim=c(0,200), ylim=c(0,200), add = TRUE, lty = c(4,2), col = c("blue", "red"))

dev.off()

}

它基本上只为我的两点模式(mydata和mydata.hex)绘制F函数,并将图像作为PDF导出到我计算机上的指定文件夹中 .

出于某种原因,我收到以下错误消息:

错误!is.null(图例)&&图例:'x && y'中的无效'y'类型

现在,每当我改变F,G,J,K,L或PCF函数图上的图例时,我都会收到此消息 . 我认为这是无关紧要的,因为它仍然生成图形,并在我指定的位置 .

问题是这个错误导致我的大函数(运行大约10个函数,如上面所示的函数)停止评估 . 大函数看起来像这样:

GenPDFs <- function(file_name){
mydata <- CreatePPP(file_name)
mydata.hex <- GenHexLat()
Density(mydata)
Lfunction(mydata, mydata.hex)
LfunctionGDS(mydata, mydata.hex)
Ffunction(mydata, mydata.hex)
FfunctionGDS(mydata, mydata.hex)
Gfunction(mydata, mydata.hex)
GfunctionGDS(mydata, mydata.hex)
Jfunction(mydata, mydata.hex)
Kfunction(mydata, mydata.hex)
KfunctionGDS(mydata, mydata.hex)
PCFfunction(mydata, mydata.hex)
#for (i in 1:30) {
#   dev.off()
#   }
}

因此,我必须手动将值输入到每个函数中 .

有谁知道如何摆脱这个警告信息?有没有办法将其关闭或否定它出现?或者,如果您有此错误消息,您知道如何解决它吗?出于某种原因,无论我使用什么语法,它都会产生此错误消息 .

1 回答

  • 0

    你可以将函数调用传递给(可能)不存在的'传奇'的情节参数吗?试试这个:

    pdf(file="Lplot.pdf")
      plot(mydata.Lest, xlim=c(0,200), ylim=c(0,200), main="L Function", 
              xlab="Distance Between Particles (r)", ylab=expression(paste(L(r))),  
              lty = c(2,1,4), col = c("red", "black","blue"), border = "black"))
      legend(x=165, y=30, c("CSR", "mydata", "mydata.hex")
      plot(mydata.hex.Lest, xlim=c(0,200), ylim=c(0,200), add = TRUE, 
               lty = c(4,2), col = c("blue", "red"))
    dev.off()
    

相关问题