on 12/10/2008 05:17 PM Bill McNeill (UW) wrote: > I'm an R newbie trying to do an operation that seems like it should be very > simple, but after much playing around with the interface and reading "An > Introduction to R" I can figure out how to do it. > > I have two text files. File1 contains: > > type n > dog 2 > cat 4 > horse 6 > > File2 contains: > > type n > horse 1 > dog 3 > cat 9 > mouse 11 > > I want to read both files into R and multiply corresponding values of n so > that I end up with: > > dog 2*3 = 6 > cat 4*9 = 36 > horse 6*1 = 6 > mouse 0*11 = 0 > > Note that the type rows are not necessarily in the same order in the two > files, and that a missing type gets a default n = 0 value. > > I figure the way to do this is use read.table and do the appropriate > manipulation of the factors, but I can't figure out what those manipulations > would be. Basically I want to use a factor table as a hash table, but I > haven't been able to figure out how to do this, which makes me think I'm not > conceptualizing this is the correct R-ish way. > > Thanks.
F3 <- merge(F1, F2, by = "type", all = TRUE) > F3 type n.x n.y 1 cat 4 9 2 dog 2 3 3 horse 6 1 4 mouse NA 11 # Convert NA's to 0 F3[is.na(F3)] <- 0 > F3 type n.x n.y 1 cat 4 9 2 dog 2 3 3 horse 6 1 4 mouse 0 11 F3$prod <- F3$n.x * F3$n.y > F3 type n.x n.y prod 1 cat 4 9 36 2 dog 2 3 6 3 horse 6 1 6 4 mouse 0 11 0 See ?merge HTH, Marc Schwartz ______________________________________________ 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.