Thank you for your kind help. Your R script works well. Lisa
Dieter Menne wrote: > > > > Lisa wrote: >> >> I have a dataset that looks like this: >> >>> data >> id code1 code2 >> 1 1 1 4 >> 2 1 2 3 >> 3 2 4 4 >> .. >> >> I want to change some numbers in the columns of “code1” and “code2” based >> on “indx” as below >> >>> indx >> [[1]] >> code >> 1 1 >> 2 3 >> 3 4 >> For example, for the first ten records (rows) of my dataset, I want to >> change 2 to 3, 3 to 4, 4 to 6, and 5 to 8 in both “code1” and “code2”, >> while for the last ten records, I want to change 3 to 4 and 4 to 6. >> >> > > You might check for "recode", for example in package car, or for > "transform". You could also do it the quick and dirty way, good to learn > indexing. Be careful if you have NA in your data, or data out of the > recode range. > > Dieter > > > data = data.frame(code1=sample(1:5,10,TRUE),code2=sample(1:5,10,TRUE)) > data = > rbind(data,data.frame(code1=sample(1:4,10,TRUE),code2=sample(1:4,10,TRUE))) > > # The recode table as in your example > #indx = list(data.frame(code=c(1,3,4,6,8)),data.frame(code=c(1,2,4,6))) > > #easier to read > recode1 = c(1,3,4,6,8) > recode2 = c(1,2,4,6) > > data$code1T[1:10] = recode1[data$code1[1:10]] > data$code2T[1:10] = recode1[data$code2[1:10]] > > data$code1T[11:20] = recode2[data$code1[11:20]] > data$code2T[11:20] = recode2[data$code2[11:20]] > > > > > -- View this message in context: http://n4.nabble.com/Data-replacement-tp999060p999342.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.