使用gsub删除R中第一个空格之前的所有字符串

cut*_*nny 9 regex r gsub

我有一个这样的数据框:

name         weight
r apple         0.5
y pear          0.4
y cherry        0.1
g watermelon    5.0
pp grape        0.5
y apple pear    0.4
...  ...
Run Code Online (Sandbox Code Playgroud)

我想删除名称列中第一个空格之前的所有字符.谁有人帮我一个忙?谢谢!

Jot*_*ota 17

试试这个:

sub(".*? ", "", D$name)
Run Code Online (Sandbox Code Playgroud)

编辑:

该模式正在查找任何字符零次或多次(.*)直到第一个空格,然后在该第一个空格之后捕获一个或多个字符((.+)).在?.*使得"懒",而不是"贪婪",是什么使得它停止在找到的第一个空间.因此,.*?匹配第一个空格之前的所有内容,空间匹配找到的第一个空格,捕获组(.*)匹配我们想要保留的内容.然后,第二个参数(.+)引用回到使用?to 分组的捕获来替换整个匹配.


Ben*_*min 7

如果D是您的数据框,请尝试

sub(".+? ", "", D$name)
Run Code Online (Sandbox Code Playgroud)

  • 制作图案:“^[^]+” (2认同)