エラーの発生した一連の呼び出しを表示する。
x <- difftime("2016-04-04",2015/10/16)
## Error in as.POSIXct.numeric(time2): 'origin' must be supplied
traceback()
4: stop("'origin' must be supplied")
3: as.POSIXct.numeric(time2)
2: as.POSIXct(time2)
1: difftime("2016-04-04", 2015/10/16)
browser()が入力されているところで一時停止する。
次のステップに行く場合は、nを入力する。qで終了
# 偏差の2乗和を求める関数
SS <- function(mu, x) {
d <- x -mu
d2 <- d^2
browser()
ss <- sum(d2)
ss
}
set.seed(100)
x <- rnorm(100)
SS(2, x)
## Called from: SS(2, x)
## <text>#6 の debug: ss <- sum(d2)
## <text>#7 の debug: ss
## [1] 501.9789
Called from: SS(2, x)
Browse[1]> ls() # 変数の一覧を表示
[1] "d" "d2" "mu" "x"
Browse[1]> print(mu) # muを表示
[1] 2
Browse[1]> mean(x) #平均を算出
[1] 0.002912563
Browse[1]> n # 次のステップ
debug at #5: ss <- sum(d2) #合計を算出
Browse[2]> c
[1] 501.9789
引用:An Introduction to the interative Debugging Tools in R: Roger D.Peng August 28, 2002
関数の呼び出しを直接見れるようにする。
stop:エラーが発生した場合に、メッセージなどを表示して停止する。
warning:ユーザーに警告メッセージを表示する。
message:メッセージを表示する。
# stop
fileName <- "hoge.csv"
file_chk <- if (file.exists(fileName)) {
read.csv(fileName)
} else {
stop("該当ファイルが存在しないので中止します", fileName)
}
## Error in eval(expr, envir, enclos): 該当ファイルが存在しないので中止しますhoge.csv
# warning
fileName <- "hoge.csv"
file_chk <- if (file.exists(fileName)) {
read.csv(fileName)
} else {
warning("該当ファイルが存在しません", fileName)
}
# message
fileName <- "hoge.csv"
file_chk <- if (file.exists(fileName)) {
read.csv(fileName)
} else {
message("該当のファイルが存在しません", fileName)
}
## 該当のファイルが存在しませんhoge.csv
trycatch:例外処理において、エラーによって実行を分岐することができる。
# 書式
result = tryCatch(
{expr},
warning = function(w) {warning-handler-code},
error = function(e) {error-handler-code},
finally = {cleanup-code}
)
tyr:第1引数は評価したい式、第2引数はエラー表示(既定ではconsoleに出力)
x <- try({open("hoge")}, silent = FALSE)
x
## [1] "Error in UseMethod(\"open\") : \n 'open' をクラス \"character\" のオブジェクトに適用できるようなメソッドがありません \n"
## attr(,"class")
## [1] "try-error"
## attr(,"condition")
## <simpleError in UseMethod("open"): 'open' をクラス "character" のオブジェクトに適用できるようなメソッドがありません >
copyrigth © 2016 r-beginners.com All rigths reserved.
PAGE TOP ▲