r - 获取R中字符串第一个大写字母的索引?

标签 r string indexing uppercase

我正在尝试获取 R 中字符串第一个字符的索引。但是我搜索过的大多数答案都是使用 grepl 检查整个字符串是否为大写。 Python 可以轻松做到这一点,但我还没有找到可以在 R 中做到这一点的库。

最佳答案

假设您从以下内容开始:

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

你可以试试:

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

还有“stringi”包,您可以使用它:

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

正如@lmo 在评论中指出的那样,regexpr 也可以工作并消除了对sapply 的需要:

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

关于r - 获取R中字符串第一个大写字母的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43328305/

相关文章:

C# 通用字符串解析为任何对象

r - R- `try`与捕获所有控制台输出一起使用吗?

IOS:stringByReplacingOccurrencesOfString 不起作用

c++ - WCHAR 到 String,我该怎么做?

python - 基于复杂索引方案分配 numpy 数组值

regex - 索引函数中的正则表达式

r - str_replace 模式是 ""给出 "Error in mutate_impl(.data, dots) : Evaluation error: Not implemented."

r - 是否可以使用 ggplot 在 map 上覆盖散点图?

regex - 我可以使用 OR 语句来指示 stringr 的 str_extract_all 函数中的模式吗?

sql - 了解聚集索引