Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Split column into multiple columns R

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.

like image 570
user3272284 Avatar asked Nov 29 '22 15:11

user3272284


1 Answers

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.

like image 188
gagolews Avatar answered Dec 04 '22 14:12

gagolews