我想要得到一个特定字母的索引,例如如何获取列表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个元素。
我想要得到一个特定字母的索引,例如如何获取列表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个元素。
或者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.
尝试grep
:
R> grep("G", LETTERS)
[1] 7
优化它只是为了通知:我想你想match("G",LETTERS)
,让你7
。该解决方案在grep
或which
的
好处是,你可以使用它的字母的载体:
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