Obecnie piszę funkcję, która akceptuje tylko niektóre dane wejściowe (w przykładzie tylko "a" i "b"). Dla wszystkich innych wejść funkcja zwróci błąd.Niestandardowe uzupełnianie zakładek w funkcji R
test <- function(x) {
allowedX <- c("a","b")
if(x %in% allowedX) print("Good choice!")
else stop("wrong input!")
}
Aby pomóc użytkownikom funkcji Chciałbym dostarczyć dozwolonych wartości dla x (przechowywanej w allowedX) za pomocą funkcji zakończenia zakładka w badania i wymienić zakończenie domyślna nazwa pliku, który jest zazwyczaj stosowana po zacytować. Więc naciskając TAB powinno dać coś takiego:
test(x="<TAB>
a b
Ja jednak nie mógł znaleźć rozwiązanie tak daleko jak mapować Wektor allowedX do zakończenia w zakładce R. Czy ktoś może mi powiedzieć jak to zrobić?
Z góry dziękuję!
powinieneś zobaczyć 'match.arg' na ... (\ t) nie jest jasne. –
agstudy
Co mam na myśli z jest to, że zazwyczaj, jeśli zaczniesz pisać polecenie w R i naciskasz przycisk tabulator () na klawiaturze, otrzymasz listę możliwych opcji do wykonania polecenia. Na przykład, wpisanie 'read.csv' i dwukrotne dotknięcie daje" read.csv read.csv2 "jako dwie opcje do wykonania polecenia. Jeśli zrobisz to samo dla rozpoczętej oferty, R wyświetli listę plików w twoim aktualnym katalogu. Próbuję zrobić, że w moim przypadku należy uzyskać dwie opcje "ab" pokazane po dotknięciu po otwarciu cytatu dla x 'test (x =" '. –
user2572255
Nie" zwykle "- tylko w jakimkolwiek GUI lub interfejs poleceń, których używasz. Być może będziesz w stanie zrobić coś takiego jak 'test <- function() {x <- readline (" input, please "); if (grep (x, some_magic_pattern, allowedX)) do_something } '. Ale ... wydaje się, że próbujesz zbudować GUI w swojej funkcji. Zaleciłbym wykonanie całej rzeczy przez TclTK, która może być wywołana z R. –