From ruipb@rr@d@@ @ending from @@po@pt  Wed Nov 21 17:54:07 2018
From: ruipb@rr@d@@ @ending from @@po@pt (Rui Barradas)
Date: Wed, 21 Nov 2018 16:54:07 +0000
Subject: [Rd] Subsetting row in single column matrix drops names in
 resulting vector
In-Reply-To: <CAJdZCv0qGoOG6a0V1uzg7tgDRQUjkzn4We=tkb_N1770nr+MHg@mail.gmail.com>
References: <CAJdZCv0qGoOG6a0V1uzg7tgDRQUjkzn4We=tkb_N1770nr+MHg@mail.gmail.com>
Message-ID: <4e29953f-7542-c4b1-ffd3-fa32d857f715@sapo.pt>

Hello,

Use drop = FALSE.

a[1, , drop = FALSE]
#     col1
#row1    1


Hope this helps,

Rui Barradas

?s 16:51 de 21/11/2018, Dmitriy Selivanov escreveu:
> Hello here. I'm struggling to understand R's subsetting behavior in couple
> of edge cases - subsetting row in a single column matrix and subsetting
> column in a single row matrix. I've read R's docs several times and haven't
> found answer.
> 
> Consider following example:
> 
> a = matrix(1:2, nrow = 2, dimnames = list(c("row1", "row2"), c("col1")))
> a[1, ]
> # 1
> 
> It returns *unnamed* vector `1` where I would expect named vector. In fact
> it returns named vector when number of columns is > 1.
> Same issue applicable to single row matrix. Is it a bug? looks very
> counterintuitive.
> 
>



[Rd] Subsetting row in single column matrix drops names in resulting vector
Rui Barradas