Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I specify a dynamic position for the start of substring?

Tags:

r

As in the example, I am trying to substring the Video_full column in a data.frame (video_data_2) I am working on. I want to keep all the characters after the period. The period is always present, there is only one period and it is in a different position in each value for the column.

     Date                     Video_full      Instances   
1 Apr 1, 2010  installs/AA.intro_video_1      546         
2 Apr 1, 2010  installs/ABAC.intro_video_2    548      

I got substring to work:

video_data_2$Video_full <- substring(video_data_2$Video_full,11)

And strsplit also:

strsplit("installs/AA.intro_video_1 ",'[.]')

I'm just not able to figure out how to start the substring in a dynamic position or only keep the second value returned by strsplit.

Thanks for any help you can offer for a simple question.

like image 239
analyticsPierce Avatar asked Jun 09 '10 06:06

analyticsPierce


3 Answers

you can use sub()

video_data_2$Video_full <- sub("^.*\\.","", video_data_2$Video_full)
like image 73
kohske Avatar answered Nov 15 '22 09:11

kohske


Another way to use strsplit

sapply(strsplit(video_data_2$Video_full, "\\."), "[", 2)

which is shorthand from

sapply(strsplit(video_data_2$Video_full, "\\."), function(x) x[2])
like image 25
Marek Avatar answered Nov 15 '22 07:11

Marek


Try stringr

library(stringr)
str_split_fixed(video_data_2$Video_full, "\\.", n = 2)[, 2]
like image 36
hadley Avatar answered Nov 15 '22 08:11

hadley