1

我想获取特定字母的索引,例如

>  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。

4

3 回答 3

7

或者which

which(LETTERS=="G")

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

您可能还想阅读Seth Falcon 最近发表的这篇博客文章,他谈到了用 C 语言对其进行优化。

于 2010-03-16T20:47:52.067 回答
7

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

match("G", LETTERS)
# [1] 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
于 2010-03-17T09:16:33.747 回答
4

尝试grep

R> grep("G", LETTERS)
[1] 7
于 2010-03-16T20:34:00.550 回答