2016-04-15 20 views
1

Hallo zusammen ich habe eine kurze Frage zu R. Ich habe drei Aussagen:R-Matrix zu schaffen

n=187 
    a <- MatrixA[ (1):(4*n), c('x1','y') ] 
    b <- MatrixA[ (1):(4*n), c('y') ] 

wo Matrix A eine 1250 x 2-Matrix mit der ersten Spalte 'x1' und die zweite Spalte mit der Bezeichnung ist mit "y" gekennzeichnet.

I den Befehl ausführen und wird zu einer 748 x 2 Matrix jedoch b a Wert (es sagt int [1: 748] blablabla).
Warum ist das? Ich bin verwirrt: Diese Aussagen sind fast identisch.

Mein Endziel ist es, b als eine 748 x 1-Matrix mit den Werten der Spalte 'y' zu erstellen.
Jede Hilfe geschätzt und danke fürs Lesen!

meine über Rstudio: Version 0.99.893 - © 2009-2016 RStudio, Inc. Mozilla/5.0 (Macintosh, Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, wie Gecko)

Antwort

3

Wenn Subsetting, R wird die Ausgabe wenn möglich zu vereinfachen. Wenn Sie beispielsweise nur eine einzelne Spalte einer Matrix auswählen, wird diese standardmäßig auf einen Vektor angewendet. Einzelheiten finden Sie unter here.

Eine schnelle Lösung ist zu tun:

b <- MatrixA[ (1):(4*n), c('y'), drop=FALSE] 
+0

Entschuldigung für die verspätete Antwort. Danke für deine Hilfe! Es wurde sehr geschätzt. Ich kann mir mein Leben nicht vorstellen, warum R das für ein gutes Design hielt. Scheint völlig unintuitiv !! – OctaveParango