On Wed, 22 Feb 2006, Daniel Farewell wrote:

> When reshaping a dataframe in which there are unused factor levels in 
> the id variable, I get the following error:
>
> Error in if (!all(really.constant)) warning(gettextf("some constant variables 
> (%s) are really varying",  :
>        missing value where TRUE/FALSE needed

Yes, I think it's a bug. Thanks for pointing it out.

        -thomas

>
> For example,
>
>> df <- data.frame(i = factor(rep(1:5, each = 2)), t = factor(rep(1:2, 5)), x 
>> = rep(rbinom(5, 1, 0.5), each = 2), y = rpois(10, 10))
>
>> subdf <- subset(df, i %in% 1:3)
>
> defines a dataframe, and a subframe with some unused factor levels (i = 4, 
> 5). Then
>
>> reshape(df, v.names = "y", timevar = "t", idvar = "i", direction = "wide")
>  i x y.1 y.2
> 1 1 0  13   6
> 3 2 0  12   5
> 5 3 0  10   9
> 7 4 1   9  11
> 9 5 1  12   8
>
> works fine but
>
>> reshape(subdf, v.names = "y", timevar = "t", idvar = "i", direction = "wide")
> Error in if (!all(really.constant)) warning(gettextf("some constant variables 
> (%s) are really varying",  :
>        missing value where TRUE/FALSE needed
>
> produces the error, which happens during the check to see if the variables 
> assumed constant are constant. The problem is that reshape searches over all 
> the levels of the id variable (i in this case) to see if the other variables 
> (here x) are constant. But there is no x associated with i = 4, 5 in the 
> smaller dataframe, so
>
>> tapply(subdf$x, subdf$i, function(x) length(unique(x)) == 1)
>   1    2    3    4    5
> TRUE TRUE TRUE   NA   NA
>
> produces some NAs. A slight change to the reshape code to work around this 
> problem would be to use (the equivalent of)
>
>> tapply(subdf$x, subdf$i[, drop = TRUE], function(x) length(unique(x)) == 1)
>   1    2    3
> TRUE TRUE TRUE
>
> in the reshapeWide function within reshape, but perhaps there is a good 
> reason not to do this?
>
> Daniel
>
> ______________________________________________
> [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
>

Thomas Lumley                   Assoc. Professor, Biostatistics
[EMAIL PROTECTED]       University of Washington, Seattle

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

Reply via email to