Define nm as the names to be multiplied and then use mapply on m[-1] and d1[nm] so that the latter's columns are rearranged:
> nm <- names(m)[-1] > data.frame(m[1], mapply("*", m[-1], d1[nm])) class feather jet 1 birds 20 20 2 planes 60 40 On Fri, Dec 12, 2008 at 8:02 PM, Bill McNeill (UW) <bill...@u.washington.edu> wrote: > Thanks for the help. Data frames are gradually starting to make sense to me. > > Here's a related question. I have two data frames, one looks like this: > >> m <- data.frame(class = c("birds", "planes"), feather = c(1,3), jet = c(2,4)) >> m > class feather jet > 1 birds 1 2 > 2 planes 3 4 > > and the other looks like this > >> d1 <- data.frame(jet = c(10), feather = c(20)) >> d1 > jet feather > 1 10 20 > > I want to multiply every value in m by the corresponding value in d1. > I want to do this for both rows, so that I end up with > > class feather jet > 1 birds 1*20 = 20 2*10 = 20 > 2 planes 3*20 = 60 4*10 = 40 > > As before, the trick is to align numbers by the data frame labels > "feather", "jet", etc. where those columns may appear in different > orders in m and d1. However, it doesn't seem like merge is > applicable, because here I'm trying to merge on data frame labels > instead of on values in a column of a data frame. In any event, I > haven't been able to figure out how to do it. > > On Wed, Dec 10, 2008 at 6:51 PM, Gabor Grothendieck > <ggrothendi...@gmail.com> wrote: >> >> You probably want Marc's solution but just in case note that zoo's merge >> supports zero fill which means that if you represented the two as zoo >> objects whose "times" are cat, dog, ... then we would have: >> >> >> File1 <- "type n >> dog 2 >> cat 4 >> horse 6" >> >> File2 <- "type n >> horse 1 >> dog 3 >> cat 9 >> mouse 11" >> >> library(zoo) >> >> z1 <- read.zoo(textConnection(File1), header = TRUE, FUN = as.character) >> z2 <- read.zoo(textConnection(File2), header = TRUE, FUN = as.character) >> >> z <- merge(z1, z2, fill = 0) >> zz <- z[,1] * z[,2] >> >> Also note that coredata(zz) and time(zz) extract the data and times >> respectively. >> >> >> On Wed, Dec 10, 2008 at 6:17 PM, Bill McNeill (UW) >> <bill...@u.washington.edu> 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. >> > -- >> > Bill McNeill >> > http://staff.washington.edu/billmcn/index.shtml >> > >> > [[alternative HTML version deleted]] >> > >> > ______________________________________________ >> > 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. >> > > > > > -- > Bill McNeill > http://staff.washington.edu/billmcn/index.shtml > > ______________________________________________ > 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. > ______________________________________________ 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.