我想知道如何删除数据中*
之后的所有内容。我有一些值,比如:IGHV4-59*01
和IGHV4-4*02
,只想要IGHV4-59
和IGHV-4
。我尝试使用潜艇,但没有得到想要的结果:
sub("*.*" , " ", data_head$v_segment)
## [1] " " " " " " " " " " " "
它没有删除*之后的所有内容,而是完全删除了所有内容。谢谢
试试这个。基本上,*
是正则表达式中的一个元字符,因此,如果希望引擎将其视为实际的标点符号,则需要对其进行转义。
gsub("\*.*", "", c("IGHV4-59*01", "IGHV4-4*02")) # You can use `sub` too as per comment
## [1] "IGHV4-59" "IGHV4-4"
正则表达式失败,因为*
是正则表达式中的一个特殊字符,即使前面没有其他字符。因此需要对其进行转义。"\*.*"
是您想要的模式。
它没有按预期工作,因为您需要转义*
以匹配文字。
sub("\*.*", "", data_head$v_segment)