假设我有向量 vec <- c("D","B","B","C","C")
。
我的目标是得到一个长度为 length(unique(vec))
的列表,其中列表中的每个元素 i
返回一个由索引组成的向量,这些索引指示在 vec
中出现的位置 unique(vec)[i]
。
例如,对于 vec
的这个列表将返回:
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.
我尝试了以下的方法,但速度太慢了。我的示例很大,因此我需要更快的代码:
vec <- c("D","B","B","C","C")
uniques <- unique(vec)
exampleList <- lapply(1:3,function(i) {
which(vec==uniques[i])
})
exampleList
order(vec)[!duplicated(sort(vec))]
,其中vec <- c("D","B","B","C","C")
。 - stevec