2016-07-18 5 views
1

나는 data.frame와 SpatialPologynDataFrame을 병합 sp::merge을 사용하고 있습니다 :sp :: merge()에서 경고를 해제하는 방법?

z <- merge(x, y, by.x = "field1", by.y = "field2") 

병합을() 귀찮게 나를 Warning message: In .local(x, y, ...) : 12 records in y cannot be matched to x으로, 나는 매우 잘 알고있다. 그를 조용하게하는 방법? 나는 all.y = FALSE을 넣으려고했습니다. x와 일치하는 사람에게만 y를 미리 필터링해야하는 것은 다소 어리 석습니다.

추신 : 나는 전역 경고 억제 기능을 사용하지 않으려 고했지만,이 기능을 비활성화하는 방법에 대해서는 묻지 않았습니다.

PS 2 : SP : 병합() 이것에 대해 경고 이유를 나는 아직도 이해하지 못하고, 경우 기본 :: 병합()

z <- merge([email protected], y, by.x = "field1", by.y = "field2") 
# spatial info dropped, base::merge() called, no warning now 
+0

'suppressWarnings'에서'merge' 호출을 래핑하여'merge' 호출에 대한 경고를 없앨 수 있습니다. –

+0

나는 귀하의 좌절감을 이해하고 질문을 다시 표결했습니다. 하지만 너무 많은 느낌표를 사용하면 얼굴에 비명을 지르는 것처럼 보입니다. :). –

+0

감사합니다 @PaulHiemstra, 나는 실제로 비명을 지르고있었습니다. 기쁜 마음으로 정직하게 다시 열었습니다. 나는이 대화를 원래의 이유가 사라짐에 따라 정리 하자고 제안합니다. – TMS

답변

3

그냥 상단에이 줄을 실행 !:하지 않습니다 귀하의 스크립트 options(warn=-1). 다시 설정하려면 warn = 0을 설정하십시오. 나는 이것을 여기에서 읽었지만 실제로 답을 게시하는 링크를 찾을 수 없었다. 그러나 이것은 경고를 전 세계적으로 끌 것입니다.

한 줄로는 suppressWarnings(yourcode)을 사용할 수 있습니다. 희망이 도움이됩니다.

+0

내 원래 질문은이 특정 경고를 해제하는 방법입니다. 고마워요, 이것은 최후의 수단으로 유용 할 수도 있습니다 ... – TMS

+0

+1, 나는 해결책을 바꾸고'supressWarnings'를 먼저 넣습니다. 이것은 OP의 문제를 해결합니다. –

+0

@PaulHiemstra, 글쎄, 적절한 솔루션 이라기보다 해킹이 좋다는 말을하고 싶다. 병합이 다른 유용한 경고를 발행 할 수도 있기 때문에 병합을 설득하여 * this *에 대해 경고하지 않는 것이 좋겠다. 이 해킹을 사용하지 못했습니다. 나는 완벽 주의자라는 것을 알고있다. sp :: merge()는 경고하지 않아야합니다. 그렇지 않으면 R에있는 경고보다 우선 순위가 낮은 메시지 여야합니다. 왜 mer ::()가 경고 메시지를 표시하는지 이해할 수 없습니다. ! – TMS