私はコールセンターからルールを示すために発信コールをシミュレートするRスクリプトを作成しています(コール数が5を超える場合、成功またはコールバック要求が設定されていれば、コードは終了するはずです)。 break
ステートメントを使用すると、私はstop
機能を使用している回避策として、望ましい結果を得られません。エラーを投げずにメッセージを印刷して関数の実行を停止する方法はありますか? これは私のコードです:R内のネストされたブロックからエラーメッセージを出力せずにブレーク/終了
dial <- function(callcount = 1)
{
maxcalls <- 5
# Possible Outcomes
outcomes <- c("RPCON","WPCON","CBLTR")
# Probaility Vector for results:
pvector <- c(1,1,1)
repeat{
if(callcount == 5){
stop("5 attempts reached, closing record for the day")
}
res <- sample(outcomes, 1, prob=pvector, rep = TRUE)
print(paste0("Attempt ",callcount))
if(res == "RPCON" & callcount <= 5){
print("Call Successful")
stop(simpleError("Ended"))
}else if(res == "WPCON" & callcount <= 5){
print("Wrong Party!, Trying alternate number...")
callcount <- callcount + 1
dial(callcount)
}else if(res == "CBLTR" & callcount <= 5){
print("Call back request set by agent")
stop("Ended")
}
}# End of REPEAT loop
}# End of function
何か助けていただければ幸いです。
'stop'はエラーを発生させ、' break'は 'for'、' while'、または 'repeat'ループから抜け出し、' return'は関数の実行を終了します。 – alistaire
@alistaire 'stop'の代わりに' break'を使うと、それはifブロックから出てくるだけです。 'return'ステートメントを使用すると、関数はコールカウントが5に達するまで続きます。 –