R有沒有一種方法可以提示用戶(即scanf)獲取信息,還可以使用字符串數組作爲可能的完成方式自動完成該提示?R有自動完成功能的提示用戶
基本上,尋找類似於GNU Readline for R(理想情況下是一個例子)。
R有沒有一種方法可以提示用戶(即scanf)獲取信息,還可以使用字符串數組作爲可能的完成方式自動完成該提示?R有自動完成功能的提示用戶
基本上,尋找類似於GNU Readline for R(理想情況下是一個例子)。
函數名稱等的自動完成似乎是運行R的開發環境的一個屬性。因此,與eclipse比較,相比於eclipse,Eclipse GUI在R GUI上的工作方式略有不同。因此,我認爲你可能很難以便攜的方式使用自動完成工作,而沒有大量的駭客問題。
更好的解決方案是創建您自己的GUI,在那裏控制行爲。下面是一個使用gWidgets
的例子,下拉列表(aka組合框)的選擇取決於輸入的內容。
library(gWidgetstcltk) # or gWidgetsRGtk2, etc.
#some choices to complete to
choices <- c("football", "barometer", "bazooka")
#sort to make it easier for the user to find one, and
#prepend with a blank string to type in
items <- c("", sort(choices))
#create a gui
win <- gwindow()
drp <- gdroplist(items = items, editable = TRUE, cont = win)
#When the user types something, update the list of available items
#to those that begin with what has been typed.
addHandlerKeystroke(drp, handler = function(h, ...)
{
regex <- paste("^", svalue(h$obj), sep = "")
h$obj[] <- items[grepl(regex, items)]
})
內部的處理程序,h$obj
指下拉列表控件,svalue(h$obj)
是當前選定的價值和h$obj[]
是項集。
中的R GUI(以及可能其它)的自動完成後的一組在utils
封裝功能(參見?rcompgen
)構建。挖掘這些信息的來源可能有用,但我仍然認爲在檢索用戶輸入時很難使其發揮作用,並且可以在開發環境之間移植。 (雖然我很高興被證明是錯誤的)。
RStudio實現自動完成,並且是開源的,也許OP可以借用它? –
如果沒有這樣的事情,我也會對其他方式感興趣的用戶我很容易從長列表中選擇的東西 - 我想打印一個「#索引:「string」列表並讓用戶選擇數字將是最多的......'BASIC' ;-) –
啊,剛剛找到'select.list'作爲'utils'的一部分,它只是我剛剛描述的以上評論 –
凱爾,繼續併發布您的解決方案作爲答案,以防其他人正在尋找此工具。 –