2013-03-08 12 views
12

W R może uzyskać dostęp do danych w wektorze kolumny macierzy kolumnowej brzmienie:R dostępu do wektora kolumny macierzy nazwy

mat2[,1] 

Każda kolumna mat2 ma nazwę. Jak mogę pobrać dane z pierwszej kolumny za pomocą atrybutu name zamiast [,1]?

Załóżmy na przykład, że moja pierwsza kolumna miała nazwę "saturn". Chcę coś

mat2[,1] == mat2[saturn]

+0

Przeczytaj dokumentację, np. '?" [", lub jakiekolwiek wprowadzenie do R. – Roland

Odpowiedz

16

Poniżej należy zrobić:

mat2[,'saturn'] 

Na przykład:

> x <- matrix(1:21, nrow=7, ncol=3) 
> colnames(x) <- paste('name', 1:3) 
> x[,'name 1'] 
[1] 1 2 3 4 5 6 7 
+0

Dzięki, jestem początkujący w R. również po prostu dodać, że w nazwie kolumny jest rozróżniana wielkość liter. –

+0

Aby dodać, można to zrobić podobnie jak mat2 $ saturn –

+0

@SaqibMustafaAbbasi w R, macierze są obiektami atomowymi, a nie rekursywnymi. Jeśli spróbujesz użyć '$' na macierzy, powinieneś otrzymać ten błąd: https://stackoverflow.com/questions/23299684/r-error-in-xed-operator-is-invalid-for-atomic-vectors# 23299802 – Dmitri

11

informacji Bonus (dodanie do pierwszej odpowiedzi)

x[,c('name 1','name 2')] 

wróci dwie kolumny tak jakbyś zrobił

x[,1:2] 

I wreszcie, te same operacje mogą być wykorzystane do podzbioru wierszy

x[1:2,] 

A jeśli wiersze zostały nazwane ...

x[c('row 1','row 2'),] 

Zwróć uwagę na pozycję przecinka w nawiasach i względem indeksów.