Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 删除数据框列中缺少值的字符串后的所有内容_Regex_R_String_Gsub_Strsplit - Fatal编程技术网

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
进行实验,但无法强制这些方法起作用。我必须说明以下事实:

  • 列缺少值,我想将它们保留在原来的位置
  • 字符串“\u1”位于变量中的不同位置
  • 我还想让数据帧的其余部分保持原样

  • 您可以尝试使用下面的
    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>代码>不是这个要求。