2016-04-29 4 views
2

Es gibt Vektoren mit Zeichen unterschiedlicher Länge wie:Muster in einer Liste von Zeichen finden Vektoren

f1 <- c("YTOI", "JKLO", "POLI") 
f2 <- c("KOPL", "KOPL", "KOPL") 
f3 <- c("JNLI", "NJLI", "IUYP") 
f4 <- c("FIPN", "JHPL", "UIPE") 

Sie in einer Liste als fe <- list(f1,f2,f3,f4) sind. Die Einträge müssen nicht alle Länge 3 sein - könnte variieren.

Wie finde ich die Einträge (Index), in denen alle Einträge identisch sind?

Antwort

3
which(sapply(fe, function(x) length(unique(x))==1)) 
## [1] 2 
3

Mit lengths():

which(lengths(sapply(fe, unique)) == 1) 

Note:

Eine Daseinsberechtigung von Längen (x) ist seine Verwendung als eine effizientere Version von sapply (x, Länge) und Ähnliches * Anrufe auf Länge anwenden.

1

Eine weitere Option ist uniqueN

library(data.table) 
which(sapply(fe, uniqueN)==1)