以 possibly() 取代 safely()
當你已經用 safely() 想到如何處理錯誤(例如把錯誤改成輸出 NA)之後,就把 safely() 換成 possibly()。possibly() 會跑過你的程式碼並套用你指定的替代結果,而且不會列印錯誤訊息。
接下來你會再次用 map() 套用 log(),但這次改用 possibly(),因為你已經知道該怎麼處理這些錯誤了。
本練習屬於課程
使用 purrr 的函式式程式設計基礎
練習說明
- 針對提供的清單使用
map(),用possibly()對每個元素取log()。 - 使用
NA_real_來替代任何資料型別不正確的元素。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Take the log of each element in the list
list(1, "I can", 10, 0, "purrr") %>%
map(___(function(___){
log(___)
}, ___))