gpt4 book ai didi

r - dplyr 变异根据条件以有效的方式替换单列中的值

转载 作者:行者123 更新时间:2023-12-02 03:39:29 26 4
gpt4 key购买 nike

我想将 b 列的值 c to p 替换为 c_to_p 分别。我使用以下方法完成了任务。

d <- data.frame(a = c(5,6,3,7,4,3,8,3,2,7), 
b = c('c t','c_t','d','o p','o_p','c m','c_t','d','o t','o_p'))
# Way-1
d %>%
mutate(b = replace(b, b == 'c t', 'c_t')) %>%
mutate(b = replace(b, b == 'o p', 'o_p'))

# Way-2
d %>% mutate(b = replace(b, b == 'c t', 'c_t'),
b = replace(b, b == 'o p', 'o_p'))

输出:

#    a   b
# 1 5 c_t
# 2 6 c_t
# 3 3 d
# 4 7 o_p
# 5 4 o_p
# 6 3 c m
# 7 8 c_t
# 8 3 d
# 9 2 o t
# 10 7 o_p

但是,我想知道是否还有其他有效的方法可以实现这一目标?我只需要对选定的值执行此操作,而不是所有具有空间的值。

最佳答案

dplyr::recode 是更改特定值的快速方法:

library(dplyr)

d <- data.frame(a = c(5,6,3,7,4,3,8,3,2,7),
b = c('c t','c_t','d','o p','o_p','c m','c_t','d','o t','o_p'))


d %>% mutate(b = recode(b, 'c t' = 'c_t', 'o p' = 'o_p'))
#> a b
#> 1 5 c_t
#> 2 6 c_t
#> 3 3 d
#> 4 7 o_p
#> 5 4 o_p
#> 6 3 c m
#> 7 8 c_t
#> 8 3 d
#> 9 2 o t
#> 10 7 o_p

关于r - dplyr 变异根据条件以有效的方式替换单列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44656454/

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