[R] Odp: Idioms for empty dataframes

Petr PIKAL petr.pikal at precheza.cz
Mon Oct 1 18:13:40 CEST 2007


Hi

r-help-bounces at r-project.org napsal dne 01.10.2007 18:01:13:

> I'm fairly new to R, coming from a programming background -- it's quite 
> nice to work with dataframes, though, as opposed to explicit iteration.
> 
> One thing I've found, which is surprising is that zero-length dataframes 

> seem to cause errors:
> 
> > t <- data.frame(bob=c(100))
> > order(t$bob)
> [1] 1
> > t1 <- t[t$bob < 50]
> > order(t1$bob)
> Error in order(na.last, decreasing, ...) :
>     argument 1 is not a vector
> 
> I'd expect c() as a result, not an error.

Several comments

data frames have dimensions so

t1 <- t[t$bob < 50] # works but is different from
t1 <- t[t$bob < 50,]

If subset operation [] results i 1 dim object it looses dimension (so as 
names), to prevent this call

t1 <- t[t$bob < 50, ,drop=F]

Regards
Petr


> 
> So I have two questions --
>   Is there something important I'm misunderstanding?
>   What idioms do experts use to deal with this?  Just calling nrow to 
> handle the 0 case?  Something cleaner?
> 
> Thanks,
> 
> Ranjan
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list