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

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.


Solution 1:

you can use sub()

video_data_2$Video_full <- sub("^.*\\.","", video_data_2$Video_full)

Solution 2:

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])

Solution 3:

Try stringr

library(stringr)
str_split_fixed(video_data_2$Video_full, "\\.", n = 2)[, 2]