I have a data frame column that I need to split into 3 separate column. Looks like this:
I:500-600
I:700-900
II:200-250
I'd like to split this into the following 3 columns:
V1 V2 V3
I 500 600
I 700 900
II 200 250
This has proved slightly trickier than I had hoped. Any help would be appreciated.
Another solution with str_match
from the stringr
package:
x <- c("I:500-600", "I:700-900", "II:200-250")
library(stringr)
as.data.frame(str_match(x, "^(.*):(.*)-(.*)$")[,-1])
## V1 V2 V3
## 1 I 500 600
## 2 I 700 900
## 3 II 200 250
In the above regular expression we match 3 substrings: from the beginning to :
, from :
to -
, and from -
to the end. Each matched substring will constitute a separate column in the resulting object.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With