[問題] 輸入錯誤格式

作者: suiming   2014-10-11 17:49:50
a <- function(n)
{
tryCatch(function1(n),
error = function(e)
{
return(NaN)
}
)
}
function1 <- function(n)
{
n^2
}
> a(s)
[1] NaN
> a(1 1)
錯誤: 未預期的 數值常數 in "a(1 1"
> a(1_1)
錯誤: 未預期的 輸入 in "a(1_"
請問如何讓a(1 1)或a(1_1)能回傳NaN?
作者: Wush978 (拒看低質媒體)   2014-10-11 18:21:00
可以用tryCatch(a(1 1), ...)
作者: suiming   2014-10-11 22:50:00
a()內的值非指定 因此不可能把所有可能放入tryCatch用tryCatch(n)也不行...
作者: bxxl (bool)   2014-10-12 13:16:00
我覺得不可能,因為 1 1 or 1_1 不是合法的常數值, 一開始就會被擋掉. 不會跑進tryCatch內部
作者: suiming   2014-10-12 14:16:00
syntax error的message可以改嗎?
作者: bxxl (bool)   2014-10-12 15:14:00
可以用字串傳進去,裡面再eval(parse(text=n)))把字串轉回值也就是在外面寫 "1 1" 這樣, 就不會被擋掉

Links booklink

Contact Us: admin [ a t ] ucptt.com