2012-09-09 18 views
2

我正在爲R函數編寫錯誤處理步驟,該步驟無法找到與查詢匹配的正確匹配項,因此向用戶顯示選項列表。我有可能匹配的列表中的輸出,我想警告格式化這個作爲一個編號列表:R:爲多行選項列表設置`warning()`的輸出格式

'multiple matches for query "Tom", select which one you want:' 
[1] Tom Bombadil 
[2] Tom Overhill 
[3] Justanother Tom 

不幸的是,警告和消息似乎喜歡刪除換行符。舉例來說,如果我有:

opts <- list("Tom Bombadil", "Tom Overhill", "Justanother Tom") 

命令

warning(opts) 

打印:

Warning message: 
Tom BombadilTom OverhillJustanother Tom 

我如何進入我會從上面(最好用數字像這樣的格式所以我可以從readLines獲取號碼選擇)

謝謝!

回答

5

這個怎麼樣:

select.list(c("Tom Bombadil", "Tom Overhill", "Justanother Tom"), 
       title = "Multiple matches for query \"Tom\", 
         select which one you want:") 
Multiple matches for query "Tom", select which one you want: 

1: Tom Bombadil 
2: Tom Overhill 
3: Justanother Tom 

Selection: 2 
[1] "Tom Overhill" 
+0

優秀的解決方案,解決了我的問題的格式和捕獲用戶選擇的問題!注意後人:簡單地將'warning'或'message'格式化爲多行,我相信'paste0'是我尋找的函數('collapse =「\ n」)' – cboettig