# Bioequivalence and Bioavailability Forum

Back to the forum  Query: 2018-04-23 03:30 CEST (UTC+2h)

ElMaestro
Hero

Denmark,
2016-09-21 12:59

Posting: # 16657
Views: 2,841

## 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.

I could be wrong, but…

Best regards,
ElMaestro

- Bootstrapping for dissolution data is a relatively new hobby of mine.
d_labes
Hero

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

@ ElMaestro
Posting: # 16659
Views: 2,324

## 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,318

## 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,303

## 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")```

I could be wrong, but…

Best regards,
ElMaestro

- Bootstrapping for dissolution data is a relatively new hobby of mine.
d_labes
Hero

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

@ mittyri
Posting: # 16662
Views: 2,284

## 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,201 posts in 3,870 threads, 1,153 registered users;
33 users online (1 registered, 32 guests).

Not to be absolutely certain is, I think,
one of the essential things in rationality.    Bertrand Russell

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