2010-03-16 72 views
1

我想要得到一个特定字母的索引,例如如何获取列表A-Z中某个字母的索引?

> 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个元素。

回答

7

或者which

which(LETTERS=="G") 

which功能就是为此而特别设计:

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

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 

你也可能需要阅读this recent blog post from Seth Falcon,他谈论了C.

4

尝试grep

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

优化它只是为了通知:我想你想match("G",LETTERS),让你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 
相关问题