2012-01-25 17 views
6

ja ogłoszony 1 przez 6 macierz A mówiąc:Jak indeks macierz R to bez powrotu do Wektor

A <- matrix(1:6, nrow=1) 

ja wtedy nie dim (A) i zgodnie z oczekiwaniami dostaję 1 przez 6 ... ale następnie robię A [, 2: 5] i spodziewałbym się, że będzie to matryca o wymiarach 1 na 4 z wpisami 2,3,4,5 ... ale zamiast tego będzie przyciemniona (A [, 2: 5]) ZERO! uległo degradacji do wektora lub czegoś. Jak mogę tego uniknąć?

ja ostatecznie stara się zrobić coś takiego:

A[,a:b] %*% X[a:b,a:b] %*% t(A[,a:b]) 

zmiennym a i b, więc mogę mnożyć tylko części powyższych matryc together..but ten łamie gdy A rozpada się wektorem ...

Dzięki

Odpowiedz

9

Stosować ,drop=FALSE jako dodatkowy (krocząca) argument z udziałem ].

Przykład:

R> M <- matrix(1:4,2,2) 
R> M[,2]     ## looses matrix class 
[1] 3 4 
R> M[,2,drop=FALSE]  ## forced to a n x 1 matrix 
    [,1] 
[1,] 3 
[2,] 4 
R> 

Może to być główny FAQ, ale ze względu na kompatybilność zachowanie jest mało prawdopodobne, aby zmienić.

+0

Dzięki temu wydaje się załatwić sprawę! –

+3

Cieszę się, że to słyszę. W takim przypadku powszechne jest tutaj, aby "zaakceptować" najlepszą odpowiedź, klikając znak zaznaczenia, i tylko ty, jako oryginalny plakat tego pytania, możesz to zrobić. –

+2

Koło 8.1.44 "The R Inferno" http://www.burns-stat.com/pages/Tutor/R_inferno.pdf –