Message-ID: <4FFC41F7.3030105@ucalgary.ca>
Date: 2012-07-10T14:53:43Z
From: Peter Ehlers
Subject: fill 0-row data.frame with 1 line of NAs
In-Reply-To: <4FFC34D1.3000406@sapo.pt>
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.
?
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 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.
>