# Bioequivalence and Bioavailability Forum

Back to the forum  Query: 2017-05-25 05:02 CEST (UTC+2h)

ElMaestro
Hero

Denmark,
2016-09-21 12:59

Posting: # 16657
Views: 1,757

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

GCP lecturer: "And who do we consider the most important person in a clinical trial?"
Principal Investigator: "Me!".
d_labes
Hero

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

@ ElMaestro
Posting: # 16659
Views: 1,448

## 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: 1,441

## 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: 1,427

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

GCP lecturer: "And who do we consider the most important person in a clinical trial?"
Principal Investigator: "Me!".
d_labes
Hero

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

@ mittyri
Posting: # 16662
Views: 1,396

## 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
16,916 Posts in 3,625 Threads, 1,029 registered users;
14 users online (0 registered, 14 guests).

Most scientists today are devoid of ideas, full of fear, intent on
producing some paltry result so that they can add to the flood
of inane papers that now constitutes “scientific progress”
in many areas.    Paul Feyerabend

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