Hi [EMAIL PROTECTED] 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@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. ______________________________________________ R-help@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.