Hi James, Take a look at the "recode" function in the "car" package. It might be useful in this case.
HTH, Jorge On Tue, Sep 8, 2009 at 12:01 PM, <james.arn...@sssc.uk.com> wrote: > Hello, > > I am trying to map a factor variable within a data frame to a new variable > whose entries are derived from the content of the original variable and > there are fewer factors in the new variable. That is, I'm trying to set up a > surjection. > > After first thinking that this would be a common operation and would have a > quite simple interface, I can not seem to find one, nor any similar posts on > this topic (please correct me if there is something). > > Therefore, I have written a function to perform this mapping. However, the > function I have written doesn't seem to work with vectors greater than > length 1, and as such is useless. Is there any way to ensure the function > would work appropriately for each element of the vector input? > > mapLN <- function(x) > { > Reg <- levels(df$Var1) > if (x==Reg[1] | x==Reg[2] | x==Reg[13] | x==Reg[17] | x==Reg[20] | > x==Reg[23] | x==Reg[27]) {"North"} else > if (x==Reg[3] | x==Reg[5] | x==Reg[7] | x==Reg[14] | x==Reg[15] | > x==Reg[24] | x==Reg[30]) {"East"} else > if (x==Reg[4] | x==Reg[6] | x==Reg[8] | x==Reg[9] | x==Reg[11] | > x==Reg[16] | x==Reg[18] | x==Reg[21] | x==Reg[22] | x==Reg[25] | x==Reg[28] > | x==Reg[29] | x==Reg[31]) {"West"} else > if (x==Reg[10] | x==Reg[12] | x==Reg[19] | x==Reg[26] | x==Reg[32]) > {"South"} else > stop("Not in original set") > } > > Many thanks, > James > > This E-Mail is confidential and intended solely for the use of the > individual to whom it is addressed. If you are not the addressee, any > disclosure, reproduction, copying, distribution or other dissemination or > use of this communication is strictly prohibited. If you have received this > transmission in error please notify the sender immediately by replying to > this e-mail, or telephone 01382 207 222, and then delete this e-mail. > > All outgoing messages are checked for viruses however no guarantee is given > that this e-mail message, and any attachments, are free from viruses. You > are strongly recommend to check for viruses using your own virus scanner. > Neither SCRC or SSSC will accept responsibility for any damage caused as a > result of virus infection. > > > ______________________________________________ > 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.