Regex 删除数据框列中缺少值的字符串后的所有内容
我有一个类似于以下摘录的数据框:Regex 删除数据框列中缺少值的字符串后的所有内容,regex,r,string,gsub,strsplit,Regex,R,String,Gsub,Strsplit,我有一个类似于以下摘录的数据框: Observation Identifier Value Obs001 ABC_2001 54 Obs002 ABC_2002 -2 Obs003 1 Obs004 1 Obs005 Def_2001/05 我想将此数据帧转换为一个数据帧,在该数据帧中删除“u”符号后的字符串部分:如下所示: Observation Identifie
Observation Identifier Value
Obs001 ABC_2001 54
Obs002 ABC_2002 -2
Obs003 1
Obs004 1
Obs005 Def_2001/05
我想将此数据帧转换为一个数据帧,在该数据帧中删除“u”符号后的字符串部分:如下所示:
Observation Identifier_NoTime Value
Obs001 ABC 54
Obs002 ABC -2
Obs003 1
Obs004 1
Obs005 Def
我试着用这里讨论的strsplit
、gsub
和sub
进行实验,但无法强制这些方法起作用。我必须说明以下事实:
您可以尝试使用下面的
sub
命令来删除\uu
符号中的所有非空格字符
sub("_\\S*", "", string)
说明:
匹配文字符号\uu
匹配零个或多个非空格字符\S*
符号中的所有字符
sub("_.*", "", string)
说明:
\uu
匹配文字符号
*
与任何字符零次或多次匹配
您是否尝试过sub(“\us+”,”,string,perl=T)
?谢谢,它很有魅力。你愿意详细说明一下吗?那么我就这样回答。为什么不sub(“.+”,“”,string,perl=T)
?为什么不sub(“..*”,“”,string,perl=T)
:-)?那么在\S
的情况下,S
是做什么的,还有其他选项吗?\S
将匹配任何空格字符空格、制表符、换行符,回车
<代码>\S
将执行反向操作。不要把\\代码> s>代码作为单独的代码来考虑。<代码> perl=t>代码>不是这个要求。