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.