On 7/10/2012 7:53 AM, Peter Ehlers wrote:
On 2012-07-10 06:57, Rui Barradas wrote:
Hello,

If you write a function, it becomes less convoluted...


empty <- function(x){
    if(NROW(x) == 0){
        y <- rep(NA, NCOL(x))
        names(y) <- names(x)
        y
    }else x
}

(.xb <- iris[ iris$Species=='zz', ])
empty(.xb)

Both this and Liviu's original solution destroy the
factor nature of 'Species' (which may not matter, of
course). How about

   (.xb <- iris[ iris$Species=='zz', ])
   .xb <- .xb[1, ]   # this probably shouldn't work, but it does.

Using NA subscripting seems even better

empty <- function(x) {
  if(NROW(x) == 0) {
    x[NA,]
  } else {
    x
  }
}

It even preserves the factor nature of things:

> empty(iris[iris$Specis=='zz',])
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
NA           NA          NA           NA          NA    <NA>
> str(empty(iris[iris$Specis=='zz',]))
'data.frame':   1 obs. of  5 variables:
 $ Sepal.Length: num NA
 $ Sepal.Width : num NA
 $ Petal.Length: num NA
 $ Petal.Width : num NA
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: NA


?

Peter Ehlers



Hope this helps,

Rui Barradas

Em 10-07-2012 14:15, Liviu Andronic escreveu:
Dear all
Is there a simpler method to achieve the following: When I obtain an
empty data.frame after subsetting, I need for it to contain one line
of NAs. Here's a dummy example:
(.xb <- iris[ iris$Species=='zz', ])
[1] Sepal.Length Sepal.Width  Petal.Length Petal.Width  Species
<0 rows> (or 0-length row.names)
dim(.xb)
[1] 0 5
(.xa <- data.frame(matrix(rep(NA, ncol(.xb)), 1)))
    X1 X2 X3 X4 X5
1 NA NA NA NA NA
names(.xa) <- names(.xb)
(.xb <- .xa)
    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1           NA          NA           NA          NA      NA


The solution I came up with is way too convoluted. Anything simpler?
Regards
Liviu



______________________________________________
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.




--
Brian S. Diggs, PhD
Senior Research Associate, Department of Surgery
Oregon Health & Science University

______________________________________________
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.

Reply via email to