W Stata polecenie lookfor
oferuje szybki sposób wyszukiwania zmiennych w zbiorze danych (i przeszukuje zarówno nazwy zmiennych, jak i etykiety). Tak więc lookfor education
szybko odnajduje zmienne związane z edukacją. Czy istnieje równoważna funkcja skrótu w R?Czy istnieje szybki sposób wyszukiwania zmiennych w R?
Odpowiedz
Możesz po prostu grep
the data.frame dla potrzebnych informacji. Wtedy otrzymasz znacznie więcej informacji niż po prostu lista nazw zmiennych, dla których ktoś jest dopasowany. Można również użyć wyrażeń regularnych, zwiększając w ten sposób możliwości wyszukiwania. Oto przykład funkcji, która robi to, co chcesz (działa tylko data.frame):
lookfor <-
function (pattern, data, ...)
{
l <- lapply(data, function(x, ...) grep(pattern, x, ...))
res <- rep(FALSE, ncol(data))
res[grep(pattern, names(data), ...)] <- TRUE
res <- sapply(l, length) > 0 | res
names(res) <- names(data)
names(res)[res]
}
Najpierw grep każdą kolumnę, potem grep nazwy kolumn. Następnie przechowuję tylko informacje o tym, czy grep pasuje do czegokolwiek i nagrywam je dla każdej kolumny osobno. Zamiast ...
możesz przekazać dowolne argumenty do grep
. Jeśli go pominiesz, ta funkcja wykona proste dopasowywanie ciągów znaków.
Oto przykład:
> dt<- data.frame(y=1:10,x=letters[1:10],a=rnorm(10))
> lookfor("a",dt)
[1] "x" "a"
Jak o tym jako oneliner które biegnę na początku sesji:
lkf <- function(d,p) names(d)[grep(p,names(d))]
gdzie d
jest nazwa data.frame i p
to wzór.
Więc
d <- data.frame(a=letters[1:10],b=1:10,c=month.name[1:10])
lkf(d,'c')
# [1] "c"
A oto wersja, która nie wymaga przytoczyć nazwy zmiennych
lookfor <- function(string_to_find, data){
# Extract the arguments and force conversion to string
pars <- as.list(match.call()[-1])
data.name <- as.character(pars$data)
var <- as.character(pars$string_to_find)
# Regular expression search through names
result <- names(data)[grep(var, names(data))]
if(length(result) == 0) {
warning(paste(var, "not found in", data.name))
return(NULL)
}
else {
return(result)
}
}
Jeśli wystarczy szukać chociaż wykazu zmiennych, aby znaleźć ten, który szukają, wtedy można użyć funkcji uzupełniania kodu w RStudio (od wersji 0.99). Po prostu zacznij pisać, a otrzymasz listę możliwych dopasowań. Tak więc w twoim przypadku wpisz education$
i pojawi się lista zmiennych zawartych w ramce danych. Przewiń te i wybierz ten, który chcesz.
- 1. szybki sposób rozdzielić w R
- 2. Czy istnieje szybki sposób na utworzenie zestawu?
- 3. Czy istnieje sposób wyszukiwania historii w nrepl?
- 4. Czy istnieje sposób na uniknięcie wyszukiwania liniowego?
- 5. Czy istnieje szybki sposób na znalezienie brakujących końców w Ruby?
- 6. Czy istnieje sposób przekazywania zmiennych rodzicom Jinja2?
- 7. Szybki algorytm wyszukiwania liczb pierwszych?
- 8. Jaki jest szybki sposób na sprawdzenie, czy plik istnieje?
- 9. Object.isArray() jest powolny, czy istnieje szybki sposób na zrobienie tego?
- 10. Szybki sposób na wykrycie, czy istnieje tabela lub widok DataContext
- 11. Czy istnieje szybki sposób na .remove wiersze tabeli z jQuery
- 12. Czy istnieje szybki sposób na zablokowanie mojego repozytorium SVN?
- 13. Czy istnieje sposób użycia dwóch instrukcji "..." w funkcji w R?
- 14. Odpowiedź. Szybki sposób sprawdzania składni?
- 15. Czy istnieje automatyczny sposób wyszukiwania nieużywanych widoków w MVC?
- 16. Szybki algorytm wyszukiwania wzorca w pliku tekstowym
- 17. Czy istnieje szybszy/krótszy sposób inicjowania zmiennych w strukturze Rust?
- 18. Czy istnieje sposób na wykorzystanie zmiennych lokalnych w modułach?
- 19. Czy istnieje prosty sposób na autouzupełnianie bloków zmiennych w Xcode?
- 20. Czy istnieje sposób użycia kluczy zmiennych w dosłownym obiekcie JavaScript?
- 21. Czy istnieje sposób przekazywania zmiennych javascript w adresie URL?
- 22. Czy istnieje lepszy sposób sprawdzania zmiennych POSTed w PHP?
- 23. Czy istnieje szybki język obsługujący przenośne kontynuacje?
- 24. Szybki sposób na odczytywanie/zapisywanie plików xlsx do/z R
- 25. Czy istnieje prosty sposób utworzenia tabeli wyszukiwania javascript?
- 26. Czy istnieje kompilator R?
- 27. Czy istnieje narzędzie szybkiego wyszukiwania w IntelliJ iDEA?
- 28. Czy istnieje sposób wyprowadzania tekstu na konsolę R w kolorze
- 29. Czy istnieje sposób sortowania kolumn macierzy niezależnie w R?
- 30. Czy istnieje sposób na przyspieszenie ładowania biblioteki w R?
Głosowanie migrować do stackoverflow, ale można połączyć który() 'komendy' 'z nazwami()' komendy do tego, jeśli pracujesz z ramki danych, lub 'colnames()' jeśli pracujesz z matrycą – Macro