Skip to content
Prev 56829 / 63421 Next

nrow(rbind(character(), character())) returns 2 (as documented but very unintuitive, IMHO)

Hi Herve,

Inline.
On Thu, May 16, 2019 at 4:45 PM Pages, Herve <hpages at fredhutch.org> wrote:

            
Sure, but
[1] 2
[1] 2
[1] 1

So even if I ultimately "lose"  this debate (which really wouldn't shock
me, even if R-core did agree with me there's backwards compatibility to
consider), you have to concede that the current behavior is more
complicated than the above is acknowledging.

By rights of the invariance that you and Hadley are advocating,  as far as
I understand it, the last should give 2 rows, one of which is all NAs,
rather than giving only one row as it currently does (and, I assume?,
always has).

So there are two different behavior patterns that could coherently (and
internally-consistently) be generalized to apply to the  rbind(character(),
character()) case, not just one. I'm making the case that the other one
(that length 0 vectors do not add rows because they don't contain data)
would be equally valid, and to N>1 people, at least equally intuitive.

Best,
~G

  
  

Thread (13 messages)

Gabriel Becker nrow(rbind(character(), character())) returns 2 (as documented but very unintuitive, IMHO) May 16 Hadley Wickham nrow(rbind(character(), character())) returns 2 (as documented but very unintuitive, IMHO) May 16 robin hankin nrow(rbind(character(), character())) returns 2 (as documented but very unintuitive, IMHO) May 16 Gabriel Becker nrow(rbind(character(), character())) returns 2 (as documented but very unintuitive, IMHO) May 16 Gabriel Becker nrow(rbind(character(), character())) returns 2 (as documented but very unintuitive, IMHO) May 16 Hervé Pagès nrow(rbind(character(), character())) returns 2 (as documented but very unintuitive, IMHO) May 16 Gabriel Becker nrow(rbind(character(), character())) returns 2 (as documented but very unintuitive, IMHO) May 16 Hervé Pagès nrow(rbind(character(), character())) returns 2 (as documented but very unintuitive, IMHO) May 16 Jan Gorecki nrow(rbind(character(), character())) returns 2 (as documented but very unintuitive, IMHO) May 16 Abby Spurdle nrow(rbind(character(), character())) returns 2 (as documented but very unintuitive, IMHO) May 16 Martin Maechler nrow(rbind(character(), character())) returns 2 (as documented but very unintuitive, IMHO) May 17 Gabriel Becker nrow(rbind(character(), character())) returns 2 (as documented but very unintuitive, IMHO) May 17 Martin Maechler nrow(rbind(character(), character())) returns 2 (as documented but very unintuitive, IMHO) May 17