如何从列表A-Z获取一个字母的索引?

时间:2010-03-16 20:28:06

标签: r indexing 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

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

3 个答案:

答案 0 :(得分:7)

which

which(LETTERS=="G")

which函数专门用于此目的:

  

给出逻辑的'TRUE'索引   对象,允许数组索引。

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

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

您可能还想阅读this recent blog post from Seth Falcon,在那里他谈到用C语言优化它。

答案 1 :(得分:7)

只是为了通知:我想你想要

match("G", LETTERS)
# [1] 7

此解决方案优于grepwhich的好处是您可以在字母向量上使用它:

match(c("S","T","A","C","K","O","V","E","R","F","L","O","W"), LETTERS)
# gives:
# [1] 19 20  1  3 11 15 22  5 18  6 12 15 23

答案 2 :(得分:4)

尝试grep

R> grep("G", LETTERS)
[1] 7