I don't know how to prevent aggregate from making factors of everything, but the following shows how to cast them back into what you want:

> DF1 <- data.frame(a=1:9, b=rep(letters[1:3], 3), d=rep(1:3, each=3))
>
> DF. <- aggregate(DF1$a, by=list(b=DF1$b, d=DF1$d), FUN=sum)
> sapply(DF., class)
       b         d         x
"factor"  "factor" "integer"
>
> DF.$bch <- as.character(DF.$b)
> DF.$dn <- as.numeric(as.character(DF.$d))
> sapply(DF., class)
         b           d           x         bch          dn
  "factor"    "factor"   "integer" "character"   "numeric"

How's this? I just got this same result from S-Plus 6.1 and R 1.8.0. spencer graves

Jeff D. Hamann wrote:

I've been trying to figure out how to prevent a column that is the result of
an aggregate function call so that I can use it in further calculations. For
example, I would like to aggregate the expf for the data.frame by sp
(character) and dbh (double d=rounded to integer) using the command:




st2 <- aggregate( ntrs$expf, by=list(sp=ntrs$sp,dbh=ntrs$dbh), sum )
st2$expf <- st2$x / 20
st2$basal.area <- st2$dbh^2 * st2$expf


Warning message:
"^" not meaningful for factors in: Ops.factor(st2$dbh, 2)



attributes(st2$dbh) tell me the class is a factor. I would like to values to remain AsIs but cannot seem to figure out how to tell aggregate how to do that, or even handle the operation after the fact by converting or adding an extra column to the resulting data.frame.

I've tried using I() with no luck



st2 <- aggregate( ntrs$expf, by=list(sp=ntrs$sp,dbh=I(ntrs$dbh)), sum )



How can/do I "cast" the dbh factor into an integer in the data.frame?


Thanks,
Jeff.

---
Jeff D. Hamann
Forest Informatics, Inc.
PO Box 1421
Corvallis, Oregon USA 97339-1421
(office) 541-754-1428
(cell) 541-740-5988
[EMAIL PROTECTED]
www.forestinformatics.com

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help



______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to