Here is a tibble I have.
| Posttest.Scenario.1.Pair | Posttest.Scenario.2.Pair | Posttest.Scenario.3.Pair | Posttest.Scenario.4.Pair | Posttest.Scenario.5.Pair | Posttest.Pair.1.Scenario | Posttest.Pair.2.Scenario | Posttest.Pair.3.Scenario | Posttest.Pair.4.Scenario | Posttest.Pair.5.Scenario |
|---|---|---|---|---|---|---|---|---|---|
| 4 | 5 | 2 | 1 | 3 | Driveway Drunk | Parking Lot Duo | Baby on Bridge | Homeless at Business | NASA EDP |
| 1 | 4 | 3 | 2 | 5 | Driveway Drunk | Parking Lot Duo | Down and Out | Biker Billy | Misery Mountain |
| 4 | 5 | 3 | 1 | 2 | Driveway Drunk | Domestic Disturbance | Down and Out | Biker Billy | Misery Mountain |
| 4 | 3 | 5 | 1 | 2 | Locked Out | Domestic Disturbance | Baby on Bridge | Homeless at Business | NASA EDP |
| 4 | 5 | 2 | 3 | 1 | Driveway Drunk | Domestic Disturbance | Down and Out | Biker Billy | Misery Mountain |
Pardon the scenario names; they are names of police training scenarios. There are five "pairs" of scenarios. Within each pair, each participant randomly gets one scenario at pretest (already completed) and the other at posttest.
The columns named "Posttest.Scenario.x.Pair" contain the pair name (i.e., 3) in that ordinal position of presentation. For example, if Posttest.Scenario.1.Pair = 4, that means that the first posttest scenario will be the assigned scenario from pair #4.
The columns named "Posttest.Pair.x.Scenario" contain the names of the posttest scenarios allocated for each of the 5 pairs.
I am trying to create the additional five columns to the right ("Posttest.Scenario.x"). These should contain the names (rather than the pair identifier) of scenarios by their order of presentation:
| Posttest.Scenario.1.Pair | Posttest.Scenario.2.Pair | Posttest.Scenario.3.Pair | Posttest.Scenario.4.Pair | Posttest.Scenario.5.Pair | Posttest.Pair.1.Scenario | Posttest.Pair.2.Scenario | Posttest.Pair.3.Scenario | Posttest.Pair.4.Scenario | Posttest.Pair.5.Scenario | Posttest.Scenario.1 | Posttest.Scenario.2 | Posttest.Scenario.3 | Posttest.Scenario.4 | Posttest.Scenario.5 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 4 | 5 | 2 | 1 | 3 | Driveway Drunk | Parking Lot Duo | Baby on Bridge | Homeless at Business | NASA EDP | Homeless at Business | NASA EDP | Parking Lot Duo | Driveway Drunk | Baby on Bridge |
| 1 | 4 | 3 | 2 | 5 | Driveway Drunk | Parking Lot Duo | Down and Out | Biker Billy | Misery Mountain | Driveway Drunk | Biker Billy | Down and Out | Parking Lot Duo | Misery Mountain |
| 4 | 5 | 3 | 1 | 2 | Driveway Drunk | Domestic Disturbance | Down and Out | Biker Billy | Misery Mountain | Biker Billy | Misery Mountain | Down and Out | Driveway Drunk | Domestic Disturbance |
| 4 | 3 | 5 | 1 | 2 | Locked Out | Domestic Disturbance | Baby on Bridge | Homeless at Business | NASA EDP | Homeless at Business | Baby on Bridge | NASA EDP | Locked Out | Domestic Disturbance |
| 4 | 5 | 2 | 3 | 1 | Driveway Drunk | Domestic Disturbance | Down and Out | Biker Billy | Misery Mountain | Biker Billy | Misery Mountain | Domestic Disturbance | Down and Out | Driveway Drunk |
Here is what I wrote, which gets the job done:
rowwise() %>%
mutate(`Posttest Scenario 1` = ifelse(Posttest.Scenario.1.Pair == 1, Posttest.Pair.1.Scenario,
ifelse(Posttest.Scenario.1.Pair == 2, Posttest.Pair.2.Scenario,
ifelse(Posttest.Scenario.1.Pair == 3, Posttest.Pair.3.Scenario,
ifelse(Posttest.Scenario.1.Pair == 4, Posttest.Pair.4.Scenario,
ifelse(Posttest.Scenario.1.Pair == 5, Posttest.Pair.5.Scenario,"NA"))))),
`Posttest Scenario 2` = ifelse(Posttest.Scenario.2.Pair == 1, Posttest.Pair.1.Scenario,
ifelse(Posttest.Scenario.2.Pair == 2, Posttest.Pair.2.Scenario,
ifelse(Posttest.Scenario.2.Pair == 3, Posttest.Pair.3.Scenario,
ifelse(Posttest.Scenario.2.Pair == 4, Posttest.Pair.4.Scenario,
ifelse(Posttest.Scenario.2.Pair == 5, Posttest.Pair.5.Scenario,"NA"))))),
`Posttest Scenario 3` = ifelse(Posttest.Scenario.3.Pair == 1, Posttest.Pair.1.Scenario,
ifelse(Posttest.Scenario.3.Pair == 2, Posttest.Pair.2.Scenario,
ifelse(Posttest.Scenario.3.Pair == 3, Posttest.Pair.3.Scenario,
ifelse(Posttest.Scenario.3.Pair == 4, Posttest.Pair.4.Scenario,
ifelse(Posttest.Scenario.3.Pair == 5, Posttest.Pair.5.Scenario,"NA"))))),
`Posttest Scenario 4` = ifelse(Posttest.Scenario.4.Pair == 1, Posttest.Pair.1.Scenario,
ifelse(Posttest.Scenario.4.Pair == 2, Posttest.Pair.2.Scenario,
ifelse(Posttest.Scenario.4.Pair == 3, Posttest.Pair.3.Scenario,
ifelse(Posttest.Scenario.4.Pair == 4, Posttest.Pair.4.Scenario,
ifelse(Posttest.Scenario.4.Pair == 5, Posttest.Pair.5.Scenario,"NA"))))),
`Posttest Scenario 5` = ifelse(Posttest.Scenario.5.Pair == 1, Posttest.Pair.1.Scenario,
ifelse(Posttest.Scenario.5.Pair == 2, Posttest.Pair.2.Scenario,
ifelse(Posttest.Scenario.5.Pair == 3, Posttest.Pair.3.Scenario,
ifelse(Posttest.Scenario.5.Pair == 4, Posttest.Pair.4.Scenario,
ifelse(Posttest.Scenario.5.Pair == 5, Posttest.Pair.5.Scenario,"NA"))))))
But I know that's horrible and couple be vastly improved. I just don't know how to do it. Is it a loop that uses a function? Can you please help?
Aucun commentaire:
Enregistrer un commentaire