Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
844 views
in Technique[技术] by (71.8m points)

regex - 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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...