複数のサブ関数を含む関数を作成しました。サブ関数はすべて、以下のものとまったく同じです。
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()
# }
}
したがって、各関数に手動で値を入力する必要があります。
この警告メッセージを取り除く方法を知っている人はいますか?オフにしたり、表示を無効にしたりする方法はありますか?または、このエラーメッセージが表示された場合は、修正方法を知っていますか?何らかの理由で、使用する構文に関係なく、このエラーメッセージが生成されます。