디버그/언디버그
디버그/언디버그 (debug/undebug)
R에서는 debug()로 함수에 디버거를 붙이고, undebug()로 해제할 수 있어요. 함수가 호출될 때마다 디버거가 실행되면서 문장 단위로 실행을 제어할 수 있답니다.
출처: 문서
본문
9.2 debug/undebug
debug(fun) 명령으로 모든 함수에 디버거를 호출할 수 있어요. 그 후에는 그 함수가 평가될 때마다 디버거가 호출돼요. 디버거는 함수 본문 안에 있는 문장들의 평가를 하나씩 제어할 수 있게 해줘요. 각 문장이 실행되기 전에 그 문장이 화면에 출력되고, 특별한 프롬프트가 제공돼요. 이 프롬프트에서는 일반적인 R 명령을 모두 입력할 수 있으며, 앞선 표에 있는 명령들은 특별한 의미를 가져요.
디버깅을 끌 때는 함수를 인자로 전달해서 undebug를 호출해요.
> debug(mean.default)
> mean(1:10)
debugging in: mean.default(1:10)
debug: {
if (na.rm)
x <- x[!is.na(x)]
trim <- trim[1]
n <- length(c(x, recursive = TRUE))
if (trim > 0) {
if (trim >= 0.5)
return(median(x, na.rm = FALSE))
lo <- floor(n * trim) + 1
hi <- n + 1 - lo
x <- sort(x, partial = unique(c(lo, hi)))[lo:hi]
n <- hi - lo + 1
}
sum(x)/n
}
Browse[1]>
debug: if (na.rm) x <- x[!is.na(x)]
Browse[1]>
debug: trim <- trim[1]
Browse[1]>
debug: n <- length(c(x, recursive = TRUE))
Browse[1]> c
exiting from: mean.default(1:10)
[1] 5.5