Извлечение последних n символов из строки в R - PullRequest
234 голосов
/ 01 ноября 2011

Как я могу получить последние n символов из строки в R?Есть ли такая функция, как RIGHT в SQL?

Ответы [ 14 ]

2 голосов
/ 10 августа 2018

Попробуйте:

x <- "some text in a string"
n <- 5
substr(x, nchar(x)-n, nchar(x))

Это должно дать:

[1] "string"
1 голос
/ 25 июля 2017

Я использовал следующий код, чтобы получить последний символ строки.

    substr(output, nchar(stringOfInterest), nchar(stringOfInterest))

Вы можете поиграть с nchar (stringOfInterest), чтобы выяснить, как получить последние несколько символов.

0 голосов
/ 02 июня 2018

На всякий случай, если нужно выбрать диапазон символов:

# For example, to get the date part from the string

substrRightRange <- function(x, m, n){substr(x, nchar(x)-m+1, nchar(x)-m+n)}

value <- "REGNDATE:20170526RN" 
substrRightRange(value, 10, 8)

[1] "20170526"
0 голосов
/ 21 ноября 2016

Небольшая модификация решения @Andrie дает также дополнение:

substrR <- function(x, n) { 
  if(n > 0) substr(x, (nchar(x)-n+1), nchar(x)) else substr(x, 1, (nchar(x)+n))
}
x <- "moSvmC20F.5.rda"
substrR(x,-4)
[1] "moSvmC20F.5"

Это было то, что я искал. И это приглашает на левую сторону:

substrL <- function(x, n){ 
  if(n > 0) substr(x, 1, n) else substr(x, -n+1, nchar(x))
}
substrL(substrR(x,-4),-2)
[1] "SvmC20F.5"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...