删除具有缺失值的数据框列中的字符串后的所有内容

Kon*_*rad 2 regex string r gsub strsplit

我有一个类似于以下摘录的数据框:

Observation Identifier   Value
Obs001      ABC_2001     54
Obs002      ABC_2002     -2
Obs003                   1
Obs004                   1 
Obs005      Def_2001/05  
Run Code Online (Sandbox Code Playgroud)

我想将此数据帧转换为数据框,其中"_"符号后面的部分字符串将被删除:如下图所示:

Observation Identifier_NoTime   Value
Obs001      ABC                 54
Obs002      ABC                 -2
Obs003                          1
Obs004                          1 
Obs005      Def  
Run Code Online (Sandbox Code Playgroud)

我试图用试验strsplit,gsubsub为这里讨论,但不能强迫那些赞扬的工作.我必须说明以下事实:

  1. 列缺少值,我想将它们保留在原来的位置
  2. 字符串"_"位于变量的不同位置
  3. 我还希望保留数据框的其余部分

Avi*_*Raj 10

您可以尝试使用以下sub命令从_符号中删除所有非空格字符.

sub("_\\S*", "", string)
Run Code Online (Sandbox Code Playgroud)

说明:

  • _匹配文字_符号.
  • \S* 匹配零个或多个非空格字符.

要么

这将删除_符号中的所有字符,

sub("_.*", "", string)
Run Code Online (Sandbox Code Playgroud)

说明:

  • _匹配文字_符号.
  • .* 匹配任何字符零次或多次.