Effizienter R-Code zum Auffinden von Indizes, die eindeutigen Werten im Vektor zugeordnet sind
Angenommen, ich habe einen Vektorvec <- c("D","B","B","C","C")
.
Mein Ziel ist es, eine Liste von Dimensionen zu erstellenlength(unique(vec))
, wo jederi
dieser Liste gibt einen Vektor von Indizes zurück, die die Positionen von bezeichnenunique(vec)[i]
imvec
.
Zum Beispiel diese Liste fürvec
würde zurückkehren:
exampleList <- list()
exampleList[[1]] <- c(1) #Since "D" is the first element
exampleList[[2]] <- c(2,3) #Since "B" is the 2nd/3rd element.
exampleList[[3]] <- c(4,5) #Since "C" is the 4th/5th element.
Ich habe den folgenden Ansatz ausprobiert, aber er ist zu langsam. Mein Beispiel ist groß, deshalb brauche ich schnelleren Code:
vec <- c("D","B","B","C","C")
uniques <- unique(vec)
exampleList <- lapply(1:3,function(i) {
which(vec==uniques[i])
})
exampleList