Vic*_*ica 1 r dplyr recode tidyverse
countrycode event
1713 ESP 110mh
1009 NED HJ
536 BLR LJ
2882 FRA 1500m
509 EST LJ
2449 BEL PV
1022 EST HJ
2530 USA JT
2714 CUB JT
1236 HUN 400m
238 BLR 100m
2518 USA JT
1575 FRA 110mh
615 JPN LJ
1144 GER HJ
596 CAN LJ
2477 HUN JT
1046 GER HJ
2501 FIN DT
2176 KAZ PV
Run Code Online (Sandbox Code Playgroud)
我想在我的数据框中创建一个新的因子向量eventtype,其中:
具有行100m,400m,110mh,1500m在event可变成为分组为Runs; DT, SP,JT被分组为Throws; 和LJ, HJ,PV被分组为Jumps。
我可以单独创建一个新的向量值,例如df$eventtype <- recode_factor(df$event, `100m`="Running")适用于一个事件,但我查看了文档,没有一种简单的方法可以在一个函数调用中转换多个值。
编辑:当然,如果有另一个功能可以更好地满足我的目的,我会使用它。
函数的...参数recode_factor可以接受任意数量的参数...
library(dplyr)
df <- read.table(header = T, text = "
number countrycode event
1713 ESP 110mh
1009 NED HJ
536 BLR LJ
2882 FRA 1500m
509 EST LJ
2449 BEL PV
1022 EST HJ
2530 USA JT
2714 CUB JT
1236 HUN 400m
238 BLR 100m
2518 USA JT
1575 FRA 110mh
615 JPN LJ
1144 GER HJ
596 CAN LJ
2477 HUN JT
1046 GER HJ
2501 FIN DT
2176 KAZ PV
")
df$eventtype <- recode_factor(df$event, `100m` = "Runs", `400m` = "Runs",
`110mh` = "Runs", `1500m` = "Runs",
DT = "Throws", SP = "Throws", JT = "Throws",
LJ = "Jumps", HJ = "Jumps", PV = "Jumps")
# or inside a mutate command
df %>%
mutate(eventtype = recode_factor(event, `100m` = "Runs", `400m` = "Runs",
`110mh` = "Runs", `1500m` = "Runs",
DT = "Throws", SP = "Throws", JT = "Throws",
LJ = "Jumps", HJ = "Jumps", PV = "Jumps"))
Run Code Online (Sandbox Code Playgroud)