I have a data frame like this:
name weight
r apple 0.5
y pear 0.4
y cherry 0.1
g watermelon 5.0
pp grape 0.5
y appl
If D is your data frame, try
sub(".+? ", "", D$name)
Let's say your data frame is called 'df'
library(reshape2)
df$name = colsplit(df$name," ", names = c("chuck","name"))[,2]
Try this:
sub(".*? ", "", D$name)
The pattern is looking for any character zero or more times (.*) up until the first space, and then capturing the one or more characters ((.+)) after that first space. The ? after .* makes it "lazy" rather than "greedy" and is what makes it stop at the first space found. So, the .*? matches everything before the first space, the space matches the first space found.