我有一个这样的数据框:
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 分组的捕获来替换整个匹配.