2012-06-08 3 views
0

여러 하위 함수가 포함 된 함수를 작성했습니다. 하위 기능은 모두 정확히 같은 수있는 아래와 :R 관련없는 범례로 중지 된 함수 오류 메시지

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

따라서 각 함수에 값을 수동으로 입력해야합니다.

누구든지이 경고 메시지를 제거하는 방법을 알고 있습니까? 그것을 없애거나 나타나지 않게 할 방법이 있습니까? 또는이 오류 메시지가 나타나면이를 수정하는 방법을 알고 있습니까? 어떤 구문을 사용하든 관계없이이 오류 메시지가 생성됩니다.

+0

'mydata.Lest' 란 무엇입니까? 그것은 내가'legend' 인자를 가지고 있지 않다는 것을 알고있는 기본'plot()'메소드가 특별한 클래스 객체이어야합니다. 그래서 더 많은 세부 사항이 필요합니다. 'mydata.Lest'의 클래스는 무엇이고 어떤 패키지는이 클래스를 제공 하는가? –

답변

0

plot에 존재하지 않는 '범례'인수에 함수 호출을 전달할 수 있습니까? 대신 다음을 시도하십시오 :

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

그 트릭을했을 수도 있습니다, 내가 알려 드리겠습니다. 나는 지금 오류 메시지가 나타나지 않는 것 같습니다. 그것은 아직도 전설을 꾸몄다는 것을 생각하면 이상한 것 같습니다. – MikeZ

+0

글쎄, 당신은 전설적인 전화를 한 것입니다. –

+0

그것은 작동하는 것처럼 보였다! 엄청 고마워! 이제 L 함수에 대한 일반적인 범례를 사라지게 만드는 방법을 알아야합니다. 나는 그것이 'legend = NULL'이라고 plot 함수 내에서 상상한다. – MikeZ