Как лучше всего в R идентифицировать первый символ в строке? - PullRequest
2 голосов
/ 03 июля 2019

Я пытаюсь найти способ перебрать некоторые данные в R, которые содержат как цифры, так и символы, и где первый найденный символ возвращает все значения после.Например:

column 
000HU89
87YU899 
902JUK8   

result
HU89
YU89 
JUK8

пытался stringr_detct / grepl, но значение первого символа по природе неизвестно, поэтому у меня возникли трудности с его извлечением.

Ответы [ 4 ]

1 голос
/ 03 июля 2019

Ответ Ронака прост.Хотя я также хотел бы предоставить другой метод:

column <-c("000HU89", "87YU899" ,"902JUK8")
# Get First character
first<-c(strsplit(gsub("[[:digit:]]","",column),""))[[1]][1]
# Find the location of first character
loc<-gregexpr(pattern =first,column)[[1]][1]
# Extract everything from that chacracter to the right
substring(column, loc, last = 1000000L)
1 голос
/ 03 июля 2019

Мы могли бы использовать str_extract

stringr::str_extract(x, "[A-Z].*")
#[1] "HU89"  "YU899" "JUK8" 

данные

x <- c("000HU89", "87YU899", "902JUK8")
0 голосов
/ 03 июля 2019

Мы можем использовать sub из base R, чтобы сопоставить одну или несколько цифр (\\d+) в начале (^) строки и заменить ее пробелом ("")

sub("^\\d+", "", x)
#[1] "HU89"  "YU899" "JUK8" 

данные

x <- c("000HU89", "87YU899", "902JUK8")
0 голосов
/ 03 июля 2019

В базе R мы можем сделать

x <- c("000HU89", "87YU899", "902JUK8")
regmatches(x, regexpr("\\D.+", x))
# [1] "HU89"  "YU899" "JUK8" 
...