如何从列表AZ中获取一个字母的索引?

Joh*_*n 1 indexing r letters

我想得到一个特定字母的索引,例如

>  match(LETTERS,"G")
 [1] NA NA NA NA NA NA  1 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Run Code Online (Sandbox Code Playgroud)

告诉我这封信存在,但我希望它在这种情况下为列表的第6个元素返回6.

Sha*_*ane 7

或者which:

which(LETTERS=="G")
Run Code Online (Sandbox Code Playgroud)

which功能专为此目的而设计:

给出逻辑对象的"TRUE"索引,允许数组索引.

which函数还可以TRUE通过将arr.ind参数设置为TRUE 来返回矩阵中逻辑值的索引(这非常有用).

> which(matrix(LETTERS, nrow=5)=="G")
[1] 7
> which(matrix(LETTERS, nrow=5)=="G", arr.ind=TRUE)
     row col
[1,]   2   2
Run Code Online (Sandbox Code Playgroud)

您可能还想阅读Seth Falcon最近的博客文章,他在那里谈到用C语言优化它.


Mar*_*rek 7

只是为了通知:我想你想要grep哪个给你which.
这个解决方案的好处在于grep或者which你可以在字母向量上使用它:

match("G", LETTERS)
# [1] 7
Run Code Online (Sandbox Code Playgroud)