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()

}

基本的には、2つのポイントパターン(mydataとmydata.hex)のF関数をプロットし、画像をPDFとしてコンピューターの指定されたフォルダーにエクスポートします。

何らかの理由で、次のエラーメッセージが表示されます。

!is.null(legend)&& legendのエラー:'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()
#   }
}

したがって、各関数に手動で値を入力する必要があります。

この警告メッセージを取り除く方法を知っている人はいますか?オフにしたり、表示を無効にしたりする方法はありますか?または、このエラーメッセージが表示された場合は、修正方法を知っていますか?何らかの理由で、使用する構文に関係なく、このエラーメッセージが生成されます。

4

1 に答える 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()
于 2012-06-08T20:05:04.497 に答える