2017-04-10 5 views

Antwort

4

dies in R. tun können Sie beginnen, mit so etwas wie Angenommen:

x <- c("stRing", "strIng", "String", "sTRIng", "string") 

Sie können versuchen:

sapply(gregexpr("[A-Z]", x), `[`, 1) 
## [1] 3 4 1 2 -1 

Es gibt auch die "stringi" Paket, mit dem Sie verwenden können:

library(stringi) 
stri_locate_first_regex(x, "[A-Z]") 
##  start end 
## [1,]  3 3 
## [2,]  4 4 
## [3,]  1 1 
## [4,]  2 2 
## [5,] NA NA 

Wie von @lmo in den Kommentaren, regexpr funktioniert auch und beseitigt die Notwendigkeit für sapply:

regexpr("[A-Z]", x) 
## [1] 3 4 1 2 -1 
## attr(,"match.length") 
## [1] 1 1 1 1 -1 
## attr(,"useBytes") 
## [1] TRUE 
0

Ein gerader Weg nach vorn jede Saite in Seng Brief Vektor und Test würde Spaltung, die in ist Großbuchstaben:

x <- c("stRing", "strIng", "String", "string", "sTRIng") # from the other answer 

sapply(strsplit(x, ''), function(y) which(y %in% LETTERS)[1]) 

# [1] 3 4 1 NA 2 
Verwandte Themen