我试图找到一种方法来循环遍历R中包含数字和字符的数据,并在找到第一个字符的位置返回所有值。例如:
column
000HU89
87YU899
902JUK8
result
HU89
YU89
JUK8
尝试过stringr_detct / grepl
,但是第一个字符的值本质上是未知的,因此我很难将其拔出。
答案 0 :(得分:1)
我们可以使用str_extract
stringr::str_extract(x, "[A-Z].*")
#[1] "HU89" "YU899" "JUK8"
数据
x <- c("000HU89", "87YU899", "902JUK8")
答案 1 :(得分:1)
罗纳克的答案很简单。 尽管我还想提供另一种方法:
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)
答案 2 :(得分:0)
在R底下我们可以做
x <- c("000HU89", "87YU899", "902JUK8")
regmatches(x, regexpr("\\D.+", x))
# [1] "HU89" "YU899" "JUK8"
答案 3 :(得分:0)
我们可以使用sub
中的base R
来匹配字符串开头(\\d+
)的一个或多个数字(^
)并替换为空白({{ 1}})
""
sub("^\\d+", "", x)
#[1] "HU89" "YU899" "JUK8"