R语言如何根据列条件为数据框subcateg列符合要求的值添加X后缀
你原来的代码存在三处问题:
- 逻辑判断符号错误:R中判断值相等需要用双等号
==,单等号=是赋值操作,无法实现条件匹配 filter()函数作用是筛选符合条件的行,运行后只会保留匹配行,不会对原数据框的列做修改- 管道操作后直接调用
paste0()不会将计算结果回写到数据框的对应列中
正确实现代码
使用dplyr的mutate()函数配合条件判断即可完成需求:
library(dplyr) # 方法1:按你描述的subcateg与categ值相等作为判断条件 df <- df %>% mutate(subcateg = if_else( subcateg == categ, paste0(subcateg, "X"), subcateg )) # 方法2:如果你确认所有需要修改的条目都是subcateg长度为3的,也可以用字符长度判断 # df <- df %>% # mutate(subcateg = if_else( # nchar(subcateg) == 3, # paste0(subcateg, "X"), # subcateg # ))
运行上述代码后得到的df就是你需要的预期结构。
内容的提问来源于stack exchange,提问作者Magdalena Cortina
相关产品推荐
相关产品推荐

