РЕДАКТИРОВАТЬ: Вы видели в разделе комментариев, что OP говорит, что OP нужно 3 символа после 1-го появления самого 18
, тогда я предлагаю это регулярное выражение для того же времени.
x <- c("MGL18JUNFUT","NATIONALUM18JUNFUT18SHDGUDDG","NTPC18JUNFUT","ONGC18JUNFUT","PCJEWELLER18JUNFUT","PEL18JUNFUT","PFC18JUNFUT","PIDILITIND18JUNFUT","POWERGRID18JULFUT","PTC18JULFUT","RAYMOND18JULFUT","RBLBANK18JULFUT","RECLTD18JULFUT","RPOWER18JULFUT","MGL18JUN800PE")
>
regmatches(x,regexpr("(.*?)18.{3}",x))
Вывод будет следующим.
> regmatches(x,regexpr("(.*?)18.{3}",x))
[1] "MGL18JUN" "NATIONALUM18JUN" "NTPC18JUN" "ONGC18JUN"
[5] "PCJEWELLER18JUN" "PEL18JUN" "PFC18JUN" "PIDILITIND18JUN"
[9] "POWERGRID18JUL" "PTC18JUL" "RAYMOND18JUL" "RBLBANK18JUL"
[13] "RECLTD18JUL" "RPOWER18JUL" "MGL18JUN"
>
Взяв пример вектора, вы также можете использовать фрейм данных здесь.
x <- c("MGL18JUNFUT","NATIONALUM18JUNFUT","NTPC18JUNFUT","ONGC18JUNFUT","PCJEWELLER18JUNFUT","PEL18JUNFUT","PFC18JUNFUT","PIDILITIND18JUNFUT","POWERGRID18JULFUT","PTC18JULFUT","RAYMOND18JULFUT","RBLBANK18JULFUT","RECLTD18JULFUT","RPOWER18JULFUT","MGL18JUN800PE")
Ниже приведен код для этого.
regmatches(x,regexpr("^.*18.{3}",x))
Вывод будет следующим.
> regmatches(x,regexpr("^.*18.{3}",x))
[1] "MGL18JUN" "NATIONALUM18JUN" "NTPC18JUN" "ONGC18JUN"
[5] "PCJEWELLER18JUN" "PEL18JUN" "PFC18JUN" "PIDILITIND18JUN"
[9] "POWERGRID18JUL" "PTC18JUL" "RAYMOND18JUL" "RBLBANK18JUL"
[13] "RECLTD18JUL" "RPOWER18JUL" "MGL18JUN"
>