[問題] 輸入錯誤格式

看板R_Language作者 (台灣fighting!)時間10年前 (2014/10/11 17:49), 編輯推噓1(107)
留言8則, 3人參與, 最新討論串1/1
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? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.244.16.25 ※ 文章網址: http://www.ptt.cc/bbs/R_Language/M.1413020993.A.64E.html

10/11 18:21, , 1F
可以用tryCatch(a(1 1), ...)
10/11 18:21, 1F

10/11 22:50, , 2F
a()內的值非指定 因此不可能把所有可能放入tryCatch
10/11 22:50, 2F

10/11 23:33, , 3F
用tryCatch(n)也不行...
10/11 23:33, 3F

10/12 13:16, , 4F
我覺得不可能,因為 1 1 or 1_1 不是合法的常數值, 一開始就
10/12 13:16, 4F

10/12 13:17, , 5F
會被擋掉. 不會跑進tryCatch內部
10/12 13:17, 5F

10/12 14:16, , 6F
syntax error的message可以改嗎?
10/12 14:16, 6F

10/12 15:14, , 7F
可以用字串傳進去,裡面再eval(parse(text=n)))把字串轉回值
10/12 15:14, 7F

10/12 15:14, , 8F
也就是在外面寫 "1 1" 這樣, 就不會被擋掉
10/12 15:14, 8F
文章代碼(AID): #1KEFr1PE (R_Language)
文章代碼(AID): #1KEFr1PE (R_Language)