6
我目前正在編寫一個函數,它只接受某些輸入(在本例中只有「a」和「b」)。對於所有其他輸入,該函數將返回一個錯誤。在R函數中自定義選項卡完成
test <- function(x) {
allowedX <- c("a","b")
if(x %in% allowedX) print("Good choice!")
else stop("wrong input!")
}
爲了幫助功能的用戶我想對於x使用R中的選項卡完成功能(存儲在allowedX)提供允許值和替換默認文件名完成該後一個典型地施加引用。因此,按TAB應該給這樣的:
test(x="<TAB>
a b
但是,我無法找到一個解決方案,到目前爲止如何映射在R.矢量allowedX到標籤完成誰能告訴我該怎麼做?
在此先感謝!
你應該看到'match.arg' ...的(\ t)是不明確的。 –
agstudy
我的意思是通常是,如果你開始在R中輸入一個命令,並且按下鍵盤上的製表符按鈕(),你會得到一個可能的選項列表來完成你的命令。例如,輸入'read.csv'並點擊兩次將會給你'read.csv read.csv2'作爲完成你的命令的兩個選項。如果您對開始的報價做同樣的事情,R會向您顯示當前目錄中的文件列表。我想要做的是,在我的情況下,應該在打開x'test的報價後點擊時顯示兩個選項'ab'(x =「'。 –
user2572255
不是」典型「或命令接口,你可能可以做一些像'test < - function(){x < - readline(「input,please」); if(grep(x,some_magic_pattern,allowedX))do_something }'但是...你似乎試圖在你的函數內部構建一個GUI,我建議通過TclTK來完成整個事情,可以從R. –