gpt4 book ai didi

r - 如何在 dplyr 中使用 recode_factor 来重新编码多个因子值?

转载 作者:行者123 更新时间:2023-12-05 00:48:36 25 4
gpt4 key购买 nike

     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

我想在我的数据框中创建一个新的因子向量 eventtype ,其中:

带有 100m 的行, 400m , 110mh , 1500mevent变量被分组为 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"))

关于r - 如何在 dplyr 中使用 recode_factor 来重新编码多个因子值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49633598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com