2010-09-17 24 views
10

w R, mam, na przykład:słownik struktura danych w R

> foo <- list(a=1,b=2,c=3) 

Gdybym wpisać foo, otrzymuję:

$a 
[1] 1 

$b 
[1] 2 

$c 
[1] 3 

Jak mogę przejrzeć foo aby uzyskać listę tylko "klucze"? W tym przypadku (a, b, c).

Odpowiedz

15
> names(foo) 
[1] "a" "b" "c" 
12

Lista R może mieć nazwane elementy, a więc funkcjonować jako struktura słownika. Można po prostu zrobić:

> names(foo) 
[1] "a" "b" "c" 

Jeśli szukasz słowniku strukturze można również rozważyć użycie hash pakietów, który udostępnia Python i Perl jak słownik/hash z oczekiwanych funkcji, takich jak: keys, więc można powiedzieć, :

keys(hash) 

Pod względem wydajności lista służy jako lepszą niż słowniku hash dla kilkuset elementów lub mniej (< 200) z powodu kosztów mieszaja. Pakiet hash jest znacznie lepszy w przypadku bardzo dużych słowników.

+2

Głosuj za udzieleniem informacji, kiedy używać "listy" i kiedy używać 'hash/dict'. – Nick