Slight correction of the English: - if A is 1 then the first term equals the coefficient of (A == 1). That is the first term equals 1 if B==1 and equals -1 if B==2. If A does not equal 1 then the first term is zero and can be ignored. - terms 2 and 3 are interpreted analogously - if A==3 (or other value) then the (A==?) part of each term equals zero so the entire expression is zero.
On Jan 22, 2008 2:08 PM, Gabor Grothendieck <[EMAIL PROTECTED]> wrote: > You could create a lookup table or use recode in the car package. > > Another possibility is to use a logical/arithmetic expression. The > following expression says that > > - if A is 1 then use the first term equals the coefficient, namely 1 > if B ==1 and -1 if B == 2. > Also, if A is not 1 then that term is zero and can be ignored. > - if A is 2 or 99 then the second or third terms are used analogously > - otherwise no terms are selected and the expression equals zero > > transform(Data, new = > (A == 1) * ((B == 1) - (B == 2)) + (A == 2) * ((B == 2) - (B == > 1)) + (A == 4) * 99) > > This could be reduced even more although at the expense of > understandability, e.g. > > transform(Data, new = ifelse(A > 2, 99 * (A == 4), (A == B) - (A != B))) > > > On Jan 22, 2008 12:25 PM, Dimitri Liakhovitski <[EMAIL PROTECTED]> wrote: > > Hello, > > I have 2 variables in my sample Data: Data$A and Data$B > > Variable Data$A can assume values: 1, 2, 3, and 4. > > Variable Data$B identifies my cases and can assume values: 1 and 2. > > > > I need to recode my variable Data$A into a new variable Data$new such that: > > > > People who are Data[Data$B %in% 1, ] are recoded like this: > > > > Value on Data$A Value on Data$new > > 1 +1 > > 2 -1 > > 3 0 > > 4 99 > > > > People who are Data[Data$B %in% 2, ] are recoded like this: > > > > Value on Data$A Value on Data$new > > 1 -1 > > 2 +1 > > 3 0 > > 4 99 > > > > I am having hard time doing this. Any help would be greatly appreciated. > > Dimitri > > > > ______________________________________________ > > [email protected] 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. > > > ______________________________________________ [email protected] 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.

