如何为子字符串的开头指定动态位置?

时间:2010-06-09 06:28:58

标签: r

在示例中,我正在尝试substring我正在处理的data.frame(video_data_2)中的Video_full列。我希望在这段时间之后保留所有角色。期间始终存在,只有一个期间,并且该列的每个值处于不同的位置。

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

我有子串工作:

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

strsplit也是:

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

我只是无法弄清楚如何在动态位置启动substring或仅保留strsplit返回的第二个值。

感谢您为简单问题提供的任何帮助。

4 个答案:

答案 0 :(得分:8)

你可以使用sub()

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

答案 1 :(得分:7)

使用strsplit

的另一种方法
sapply(strsplit(video_data_2$Video_full, "\\."), "[", 2)

这是

的简写
sapply(strsplit(video_data_2$Video_full, "\\."), function(x) x[2])

答案 2 :(得分:5)

尝试stringr

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

答案 3 :(得分:3)

使用strsplit的方法

video_data_2$Video_full <- sapply(strsplit(video_data_2$Video_full, "\\."),head)[2,]