Frage

Ich möchte den Index eines bestimmten Briefes erhalten, z. B.

>  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

Gibt mir, dass der Brief existiert, aber ich möchte, dass er 6 in diesem Fall für das 6. Element der Liste zurückgibt.

War es hilfreich?

Lösung

Oder which:

which(LETTERS=="G")

Das which Die Funktion wurde speziell für diesen Zweck entwickelt:

Geben Sie die "wahren" Indizes eines logischen Objekts an und ermöglichen Sie Array -Indizes.

Das which Die Funktion kann auch den Index für logisch zurückgeben TRUE Werte in einer Matrix durch Einstellen des Arguments arr.ind auf true (dies ist sehr nützlich).

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

Möglicherweise möchten Sie auch lesen Dieser neuere Blog -Beitrag von Seth Falcon wo er über die Optimierung in C spricht, in C.

Andere Tipps

Nur für die Bekanntmachung: Ich denke, Sie wollten

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

Vorteile dieser Lösung über grep oder which ist, dass Sie es auf Vektor von Buchstaben verwenden können:

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

Versuchen grep:

R> grep("G", LETTERS)
[1] 7
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top