如何表示str_remove的多个条件?
我有一个凌乱的数据集,它由多种注释组成,如如何表示str_remove的多个条件?,r,stringr,R,Stringr,我有一个凌乱的数据集,它由多种注释组成,如A1-2,C12.3。更糟糕的是,它们并不一致 正在尝试通过添加[[:punct]]通过stringr::str_remove删除它们,但似乎在所有条件下都不起作用。似乎不可能在一条线上解决所有问题,但必须逐一处理 我想征求意见 DT <- c("A1", "A1","A3-12", "A200.4", "AX3-15", "B18", "F16", "Z32-1", "E300--2", "C61","TXDS") str_remove(DT,
A1-2
,C12.3
。更糟糕的是,它们并不一致
正在尝试通过添加[[:punct]]
通过stringr::str_remove删除它们,但似乎在所有条件下都不起作用。似乎不可能在一条线上解决所有问题,但必须逐一处理
我想征求意见
DT <- c("A1", "A1","A3-12", "A200.4", "AX3-15", "B18", "F16", "Z32-1", "E300--2", "C61","TXDS")
str_remove(DT, pattern="[-][0-9][0-9]")
str_remove(DT, pattern="[[:punct:]][0-9][0-9]")
Target <- c("A1", "A1.1","A3", "A200", "AX3", "B18", "F16", "Z32", "E300", "C61","TXDS")
# hoping the result of identical(Target, DT) is TRUE
DT也许一个简单的sub
调用就可以了。这将删除-
或
之后的所有内容
sub("-.*|\\..*", "", DT)
#[1] "A1" "A1" "A3" "A200" "AX3" "B18" "F16" "Z32" "E300" "C61" "TXDS"
我们可以将-
和
放在方括号中,使它们与成功的其他字符(*
)匹配,在替换中,指定空白(“
)
@Ronaksha对不起,我的错。应该是A1
。我想您更改了输入(DT
)而不是输出(Target
)。谢谢,我会立即尝试。
sub("[-.].*", "", DT)
#[1] "A1" "A1" "A3" "A200" "AX3" "B18" "F16" "Z32" "E300" "C61" "TXDS"