首页 > 解决方案 > 有条件地删除第一个字符

问题描述

> DF<-data.frame(id=c(1,1,2,3,3),code=c("DA","88","SE","NA","A"))
> DF
  id code
1  1   DA
2  1   88
3  2   SE
4  3   NA
5  3    A

期望的输出:

  id code code2
1  1   DA     A
2  1   88    88
3  2   SE    SE
4  3   NA    NA
5  3    A     A
> 

code如果它以 a 开头,我想删除第一个字母D

最佳 H

标签: r

解决方案


我们可以使用匹配字符串str_remove开头 ( ) 处的字母 'D'^

library(dplyr)
library(stringr)
DF %>%
   mutate(code2 = str_remove(code, '^D'))

base Rsub

DF$code2 <- sub('^D', '', DF$code)

推荐阅读