[R] Data replacement
Lisa
lisajca at gmail.com
Tue Jan 5 21:24:57 CET 2010
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.
More information about the R-help
mailing list