Attualmente sto scrivendo una funzione che accetta solo determinati input (nell'esempio solo "a" e "b"). Per tutti gli altri input la funzione restituirà un errore.Completamento scheda personalizzata in funzione R
test <- function(x) {
allowedX <- c("a","b")
if(x %in% allowedX) print("Good choice!")
else stop("wrong input!")
}
per aiutare gli utenti della funzione vorrei fornire i valori consentiti per x (memorizzato in allowedX) utilizzando la funzione di completamento scheda in R e sostituire il completamento dei nomi di file predefinito che viene generalmente applicato dopo un citazione. Quindi premere TAB deve dare qualcosa di simile:
test(x="<TAB>
a b
Tuttavia, non ho potuto trovare una soluzione finora come mappare il vettore allowedX al completamento scheda in R. Qualcuno può dirmi come fare?
Grazie in anticipo!
si dovrebbe vedere 'match.arg' ... Il (\ t) non è chiaro. –
agstudy
Quello che intendo con è che in genere, se si inizia a digitare un comando in R e si preme il pulsante tabulatore () sulla tastiera si ottiene un elenco di opzioni possibili per completare il comando. Ad esempio, digitando 'read.csv' e toccando due volte otterrai' read.csv read.csv2' come le due opzioni per completare il comando. Se fai lo stesso per una citazione iniziata R ti mostrerà una lista di file nella tua directory corrente. Quello che sto cercando di fare è che nel mio caso si dovrebbero visualizzare le due opzioni 'ab' quando si tocca dopo aver aperto la citazione per x' test (x = "". –
user2572255
Non "tipicamente" - solo in qualsiasi GUI o l'interfaccia di comando che stai usando. Potresti essere in grado di fare qualcosa come 'test <- function() {x <- readline (" input, please "); if (grep (x, some_magic_pattern, allowedX)) do_qualcosa } '. Ma ... sembra che tu stia cercando di costruire una GUI all'interno della tua funzione. Suggerirei di fare tutto tramite TclTK, che può essere chiamato da R. –