1
条件(一个或多个)单个列值(S),我想分别替换值c t
,与c_t
列b
的o p
,o_p
。我已经通过以下方法完成了任务。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'))
# 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
不过,我想知道是否有实现这一目标的任何其他有效的方法?我只需要为选定的值执行此操作,但不是所有具有空间的值。
我想这样做只适用于选定的值,而不是列中的所有值。 – Prradep
@Prradep如果您检查输出,它会给出预期的输出。你能否改变你的例子 – akrun
@Prradep如果你需要选择性的,那么'd%>%mutate(b = as.character(b),b = ifelse(b%in%c('c t','o p' ),sub(“”,“_”,b),b))' – akrun