R의 "던지기"와 동등한 값
R에서 오류를 "던지는" 방법은 무엇입니까?저는 데이터 프레임과 몇 개의 열 이름을 가져와서 그것들로 작업하는 기능을 가지고 있습니다.만약 열이 존재하지 않는다면, 나는 기능을 중지하고 그에 따라 모든 기능을 중지하기를 원합니다.
를 살펴보았습니다.recover
그리고.browse
그리고.traceback
하지만, 음, 그들은 가까운 것처럼 보였지만 제가 찾고 있는 것은 아니었습니다.
봐help(tryCatch)
:
조건은 '에 의해 표시됩니다.
signalCondition
게다가,
'stop
및 'warning
함수도 허용하도록 수정되었습니다.
조건 인수.
나중에 '참고:
'
stop
및 'warning
신호 조건 및 'try
는 기본적으로 '의 단순화된 버전입니다.tryCatch
'.
그래서 아마 당신은 원할 것입니다.stop
.
간단한 예:
f <- function(a, b){
if (a == 0){
stop("error message")
}
}
Dirk가 언급한 기본 함수 외:
R.oo 패키지에는 매우 유용한 스로우() 기능을 포함한 추가 예외 처리 기능이 있습니다.일반적인 try 또는 trycatch 함수를 사용하여 예외를 잡을 수 있습니다.
> try(throw("Division by zero.")); print("It's ok!");
Error: [2009-10-22 10:24:07] Exception: Division by zero.
[1] "It's ok!"
자세한 내용은 여기에서 확인할 수 있습니다. http://www1.maths.lth.se/help/R/R.oo/
사실 그 기능은stopifnot
코드에 건전성 검사를 구현하는 데 매우 편리합니다.여러 논리식을 사용하고 오류 중 하나가 거짓으로 평가되면 오류를 반환합니다.
예:데이터 프레임 'df'에 열 'c'가 있는지 확인하려면:
df <- data.frame(a = numeric(), b = numeric())
stopifnot(!is.null(df$c))
그러면 다음 오류가 발생합니다.
Error: !is.null(df$c) is not TRUE
열이 존재하는지 확인하고 원하는 대로 할 수 있습니다.
예를 들어data.frame
이름 지어진df1
그리고 if 열을 확인합니다.col1
존재:
if(! any(grepl('^col1$',colnames(df1)))) stop("nonexistent column")
또는
if(! any(grepl('^col1$',colnames(df1)))) return(-1)
예를 들어.
언급URL : https://stackoverflow.com/questions/1608130/equivalent-of-throw-in-r
'it-source' 카테고리의 다른 글
sql developer를 이용한 대용량 데이터 내보내기 방법 - Oracle (0) | 2023.07.05 |
---|---|
RAISERROR()의 구문 의미는 무엇입니까? (0) | 2023.07.05 |
vuex에서 API에서 데이터를 가져오는 방법 (0) | 2023.07.05 |
'완화' 설정내장된 Tomcat에 대한 QueryChars' (0) | 2023.07.05 |
기본 그래픽에서 플롯 영역 외부에 범례를 플롯하시겠습니까? (0) | 2023.06.30 |