在R中,识别字符串中第一个字符的最佳方法是什么?
我试图找到一种方法来循环遍历R中的一些数据,这些数据包含数字和字符,并且在找到第一个字符的地方返回后面的所有值。例如:在R中,识别字符串中第一个字符的最佳方法是什么?,r,parsing,stringr,grepl,R,Parsing,Stringr,Grepl,我试图找到一种方法来循环遍历R中的一些数据,这些数据包含数字和字符,并且在找到第一个字符的地方返回后面的所有值。例如: column 000HU89 87YU899 902JUK8 result HU89 YU89 JUK8 已经尝试了stringr\u dect/grepl,但第一个字符的值本质上是未知的,因此我很难将其提取出来。我们可以使用str\u extract stringr::str_extract(x, "[A-Z].*") #[1] "HU89" "YU899"
column
000HU89
87YU899
902JUK8
result
HU89
YU89
JUK8
已经尝试了
stringr\u dect/grepl
,但第一个字符的值本质上是未知的,因此我很难将其提取出来。我们可以使用str\u extract
stringr::str_extract(x, "[A-Z].*")
#[1] "HU89" "YU899" "JUK8"
数据
x <- c("000HU89", "87YU899", "902JUK8")
x <- c("000HU89", "87YU899", "902JUK8")
xRonak的答案很简单。
尽管我还想提供另一种方法:
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)
列在底端R中我们可以
x <- c("000HU89", "87YU899", "902JUK8")
regmatches(x, regexpr("\\D.+", x))
# [1] "HU89" "YU899" "JUK8"
x我们可以使用sub
frombase R
匹配字符串开头(^
)的一个或多个数字(\\d+
),并替换为空白(“
)
数据
x
x <- c("000HU89", "87YU899", "902JUK8")