On Jul 10, 2012, at 2:05 PM, Rui Barradas wrote:
Hello,
Em 10-07-2012 18:59, Peter Ehlers escreveu:
On 2012-07-10 08:50, Brian Diggs wrote:
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
Yes, you can subset with NA or any real number greater than 1.
Peter Ehlers
It would be difficult to be more compact than this:
> iris[1, ][NA,]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
NA NA NA NA NA <NA>
--
David
Good to know, was completely unaware of this indexing possibility.
Rui Barradas
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
______________________________________________
[email protected] 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.
______________________________________________
[email protected] 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.
______________________________________________
[email protected] 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.
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
______________________________________________
[email protected] 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.