Hi: Just to be different, here's a data.table solution:
library(data.table) # It's always a good idea to have your merge key variables match in each data frame/table names(DF1)[1] <- 'SampleId' dt1 <- data.table(DF1, key = 'SampleId, RepairHours') dt2 <- data.table(DF2, key = 'SampleId, RepairHours') dt3 <- merge(dt1, dt2) > dim(dt3) [1] 30 12 # check # Do the subtraction dt3$diff <- with(dt3, Day_0_Read1 - ZeroMean) If you want to perform operations between two data frames/tables, you need to merge the data first before you can perform the calculation(s). Dr. Kaza's solution works if you change the ID variable name first in DF1 the way I did and substitute SampleId for Sample_id in his code, or if you change the ID variable in DF2 to Sample_id and use his code as is. HTH, Dennis On Tue, Sep 14, 2010 at 5:38 AM, rasanpreet <rasanpreet.k...@gmail.com>wrote: > > hi guys..please help me with this > i am working on two data frames > one goes like this: > DF1 > Sample_id RepairHours Denatured Dose ZeroMean FourtyFiveMean NinetyMean > 1 SDM071 0 1 B 60.5 19.0 45.0 > 2 SDM071 1 1 B 46.0 23.0 42.5 > 3 SDM071 2 1 B 52.5 24.0 40.0 > 4 SDM071 3 1 B 42.0 21.5 45.0 > 5 SDM053 0 1 B 66.5 28.5 56.5 > 6 SDM053 1 1 B 47.0 29.0 47.5 > 7 SDM053 2 1 B 52.0 31.0 44.0 > 8 SDM053 3 1 B 36.0 34.0 41.5 > 9 SDM059 0 1 B 47.5 41.5 29.0 > 10 SDM059 1 1 B 47.0 36.0 35.0 > 11 SDM059 2 1 B 41.5 42.0 32.5 > 12 SDM059 3 1 B 46.5 41.5 32.0 > > > and the other one: > DF2 > SampleId RepairHours Denatured Dose_uM Day_0_Read1 Day_0_Read2 Day_45_Read1 > 8 SDM071 0 1 C 124 120 > 108 > 9 SDM071 0 1 25 123 128 > 77 > 10 SDM071 0 1 50 132 138 > 79 > 11 SDM071 0 1 100 118 116 > 68 > 12 SDM071 0 1 200 125 146 > 73 > 20 SDM071 1 1 C 113 117 > 113 > 21 SDM071 1 1 25 108 115 > 132 > 22 SDM071 1 1 50 105 96 > 94 > 23 SDM071 1 1 100 101 101 > 88 > 24 SDM071 1 1 200 114 106 > 89 > 32 SDM071 2 1 C 143 136 > 109 > 33 SDM071 2 1 25 126 147 > 110 > 34 SDM071 2 1 50 109 122 > 107 > 35 SDM071 2 1 100 114 118 > 89 > 36 SDM071 2 1 200 118 128 > 88 > 44 SDM071 3 1 C 103 111 > 116 > 45 SDM071 3 1 25 108 105 > 115 > 46 SDM071 3 1 50 118 99 > 88 > 47 SDM071 3 1 100 98 103 > 105 > 48 SDM071 3 1 200 112 105 > 96 > 56 SDM053 0 1 C 214 208 > 158 > 57 SDM053 0 1 25 159 214 > 178 > 58 SDM053 0 1 50 170 169 > 112 > 59 SDM053 0 1 100 149 158 > 124 > 60 SDM053 0 1 200 201 171 > 115 > 68 SDM053 1 1 C 149 166 > 120 > 69 SDM053 1 1 25 145 134 > 118 > 70 SDM053 1 1 50 159 169 > 130 > 71 SDM053 1 1 100 113 126 > 110 > 72 SDM053 1 1 200 118 112 > 120 > > > these are just part of the frames...... > i have to subtract the first five values of dataframe2 from one value from > dataframe1 > eg: subtract<-DF2$Day_0_Read1-DF1$ ZeroMean > > > if u notice the repair hours in both have to match...along with their id's. > i have tried this > zeroday_subtract1=DF1$Day_0_Read1 - DF2[DF1$RepairHours,]$ZeroMean > but it dosent work > > > please help me with this...i know its basic but i needhelp > thx in advance > > > -- > View this message in context: > http://r.789695.n4.nabble.com/how-to-compute-when-row-length-is-different-tp2538930p2538930.html > Sent from the R help mailing list archive at Nabble.com. > > [[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. > [[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.