# Bioequivalence and Bioavailability Forum

Back to the forum  Query: 2018-05-28 01:31 CEST (UTC+2h)

ElMaestro
Hero

Denmark,
2016-09-21 12:59

Posting: # 16657
Views: 2,945

## Smart recoding of vector values [R for BE/BA]

Hi all, especially the R experts out there,

I have a vector like
`a=c(1,1,2,2,3,5,5,6,6,7,8,8,9,9)`
and I would like to rename/reorder/resomething this vector so that
`a=c(1,1,2,2,3,4,4,5,5,6,7,7,8,8)`

They are actually factor levels.

So far I took a look at `reorder`, `rank`, and `sort` and googled around but I am not really getting anywhere. I have written a clumsy function that does the trick, but I am sure this can be achieved with a one-liner somehow.

Anyone able to tell how?

Thanks a lot in advance and have a great day.

“A ten-year, double-blind study from the Mayo Clinic concluded that even in late stages of dementia, the last to go is the lobe of the brain in charge of cafeteria layout.” (Serge Storms/Tim Dorsey).

Best regards,
ElMaestro

- Bootstrapping is a relatively new hobby of mine. I am only 30 years late to the party.
d_labes
Hero

Berlin, Germany,
2016-09-21 13:32

@ ElMaestro
Posting: # 16659
Views: 2,406

## Vectorized if

Dear öberster größter Meister!

» I have a vector like
» `a=c(1,1,2,2,3,5,5,6,6,7,8,8,9,9)`
» and I would like to rename/reorder/resomething this vector so that
» `a=c(1,1,2,2,3,4,4,5,5,6,7,7,8,8)`

Vectorized if comes to rescue.
`a <- ifelse(a<4, a, a-1)`

Hope this helps and matches your problem.

BTW: Hardcore Rusers never use `=` for assignments

Regards,

Detlew
mittyri
Senior

Russia,
2016-09-21 13:34

@ ElMaestro
Posting: # 16660
Views: 2,390

## Smart recoding of vector values

Hi ElMaestro,

my noob version
```a <- c(1,1,2,2,3,5,5,6,6,7,8,8,9,9) a <- as.integer(factor(a, unique(a)))```

Kind regards,
Mittyri
ElMaestro
Hero

Denmark,
2016-09-21 14:02
(edited by ElMaestro on 2016-09-21 14:14)

@ mittyri
Posting: # 16661
Views: 2,380

## Smart recoding of vector values

Dear Mittyri and d_labes,

» my noob version
» `a <- c(1,1,2,2,3,5,5,6,6,7,8,8,9,9)`
» `a <- as.integer(factor(a, unique(a)))`

Thanks a lot to both of you. You guys are nothing short of geniuses.
I think Mityri's example is better. The example that I gave had one single missing integer, but there are frequently plenty, like
`a=c(1,1,2,2,3,5,5,6,6,7,8,8,12,12, 13,13,14,16,16)` etc. I apologise I should have written that.

```a<-5 if(2*a<-<-10) cat("Yah, that '<-' business is very neat.\n")```

“A ten-year, double-blind study from the Mayo Clinic concluded that even in late stages of dementia, the last to go is the lobe of the brain in charge of cafeteria layout.” (Serge Storms/Tim Dorsey).

Best regards,
ElMaestro

- Bootstrapping is a relatively new hobby of mine. I am only 30 years late to the party.
d_labes
Hero

Berlin, Germany,
2016-09-21 15:27

@ mittyri
Posting: # 16662
Views: 2,360

## Smart recoding of vector values

Dear mittyri,

» `a <- c(1,1,2,2,3,5,5,6,6,7,8,8,9,9)`
» `a <- as.integer(factor(a, unique(a)))`

Smart

Regards,

Detlew
Bioequivalence and Bioavailability Forum |  Admin contact
18,295 posts in 3,890 threads, 1,165 registered users;
9 users online (0 registered, 9 guests).

To know that we know what we know,
and to know that we do not know what we do not know,
that is true knowledge.    Nicolaus Copernicus

The BIOEQUIVALENCE / BIOAVAILABILITY FORUM is hosted by
Ing. Helmut Schütz