On 3/06/2009, at 12:03 PM, Farley, Robert wrote:

The problem here is Table doesn't seem to have a way to weigh the data.

ToyData
    Data1 Data2  Data3 Weight
101   Sam   Red Banana    1.1
102   Sam Green Banana    2.1
103   Sam  Blue Orange    2.1
104  Fred   Red Orange    2.1
105  Fred Green  Guava    2.1
106  Fred  Blue  Guava    2.1
107  <NA>   Red   Pear   50.1
108  <NA> Green   Pear   50.1
109  <NA>  Blue   <NA> 1000.2
with(ToyData,table(Data1, Data3, useNA =  "ifany"))
      Data3
Data1  Banana Guava Orange Pear <NA>
  Fred      0     2      1    0    0
  Sam       2     0      1    0    0
  <NA>      0     0      0    2    1
xtabs(Weight ~ Data1 + Data3, exclude=NULL, na.action=na.pass, ToyData)
      Data3
Data1  Banana Guava Orange Pear
  Fred    0.0   4.2    2.1  0.0      Data3
Data1  Banana  Guava Orange   Pear     NA
  Fred    0.0    4.2    2.1    0.0    0.0
  Sam     3.2    0.0    2.1    0.0    0.0
  NA      0.0    0.0    0.0  100.2 1000.2
  Sam     3.2   0.0    2.1  0.0

Why don't you just re-code your data replacing missing values (<NA>) in
your factors by the literal string "NA"?

E.g.:

revamp <- function(x){
if(!is.factor(x)) return(x)
l <- levels(x)
x <- as.character(x)
x[is.na(x)] <- "NA"
factor(x,levels=c(l,"NA"))
}

xxx <- as.data.frame(lapply(Toydata,revamp))
xtabs(Weight ~  Data1 + Data3, data=xxx)

      Data3
Data1  Banana  Guava Orange   Pear     NA
  Fred    0.0    4.2    2.1    0.0    0.0
  Sam     3.2    0.0    2.1    0.0    0.0
  NA      0.0    0.0    0.0  100.2 1000.2


        cheers,

                Rolf Turner


######################################################################
Attention:\ This e-mail message is privileged and confid...{{dropped:9}}

______________________________________________
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