2012-10-20 2 views
27

lapply을 사용하고 콘솔에 인쇄 할 때 의도 한 메시지를 콘솔에 인쇄하고 싶지만 원치 않는 [[i]]NULL을 인쇄합니다. 나는 suppressWarningssuppressMessages을 시도했지만 이것들은 원하지 않는 범죄자를 제거하지 않습니다. lapply을 검색했고 침묵을 주장하지 않습니다. 이것은 기능을 방해하지 않기 때문에 더 미학적입니다. 사용자가 원할 경우 해제 할 수있는 한 콘솔에 대한 외부 인쇄는 반대하지 않습니다. 여기 콘솔에서 인쇄하지 않음.

는 예를 들어 기능, 출력 그리고 나는 좀하고 싶습니다 무엇 :

샘플 기능 :

FUN <- function(x) { 
    FUN2 <- function(z) message(z) 
    lapply(1:3, function(i) FUN2(paste(x, i))) 
} 

FUN("hello") 

출력 :

hello 1 
hello 2 
hello 3 
[[1]] 
NULL 

[[2]] 
NULL 

[[3]] 
NULL 

을 원하는 출력 :

,
hello 1 
hello 2 
hello 3 
+2

'lapply' 대신'purrr :: walk'를 사용하십시오. –

답변

34

사용 invisible, 예를 들면 :

invisible(FUN("hello")) 
hello 1 
hello 2 
hello 3 

당신은 함수의 lapply 전화 주위를 래핑 할 수도이 정돈 확인합니다. plyr에서

+0

완벽합니다. 시간이 끝나면 바로 표시해 드리겠습니다. ('lapply'에 대한 호출을 제안 됨), –

+0

아직도 확실하지 않은 이유는 무엇입니까 rks. 나는 보이지 않는 것을 여러 번 사용했지만이 목적을 위해 사용하지는 않았다. –

+2

반환 된 객체의 인쇄를 일시적으로 비활성화합니다. – James

6

사용 l_ply는 :

library(plyr) 
FUN <- function(x) { 
    FUN2 <- function(z) message(z) 
    l_ply(1:3, function(i) FUN2(paste(x, i))) 
} 
FUN("hello") 
관련 문제