Skip to content
Prev 56828 / 63421 Next

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

Hi Gabe,

 ? ncol(data.frame(aa=c("a", "b", "c"), AA=c("A", "B", "C")))
 ? # [1] 2

 ? ncol(data.frame(aa="a", AA="A"))
 ? # [1] 2

 ? ncol(data.frame(aa=character(0), AA=character(0)))
 ? # [1] 2

 ? ncol(cbind(aa=c("a", "b", "c"), AA=c("A", "B", "C")))
 ? # [1] 2

 ? ncol(cbind(aa="a", AA="A"))
 ? # [1] 2

 ? ncol(cbind(aa=character(0), AA=character(0)))
 ? # [1] 2

 ? nrow(rbind(aa=c("a", "b", "c"), AA=c("A", "B", "C")))
 ? # [1] 2

 ? nrow(rbind(aa="a", AA="A"))
 ? # [1] 2

 ? nrow(rbind(aa=character(0), AA=character(0)))
 ? # [1] 2

hmmm... not sure why ncol(cbind(aa=character(0), AA=character(0))) or 
nrow(rbind(aa=character(0), AA=character(0))) should do anything 
different from what they do.

In my experience, and more generally speaking, the desire to treat 
0-length vectors as a special case that deviates from the 
non-zero-length case has never been productive.

H.
On 5/16/19 13:17, Gabriel Becker wrote:

  
    

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