對不起,如果存在此問題。說我有一個載體計算每個位置出現的次數
value <- c("A", "A", "B", "C", "D", "A", "A", "B", "C", "D")
我想在每個位置來計算每個唯一值的數量,以便我能得到像
c(1, 2, 1, 1, 1, 3, 4, 2, 2, 2)
結果是否有一個快速的方法來做到這一點R中?
對不起,如果存在此問題。說我有一個載體計算每個位置出現的次數
value <- c("A", "A", "B", "C", "D", "A", "A", "B", "C", "D")
我想在每個位置來計算每個唯一值的數量,以便我能得到像
c(1, 2, 1, 1, 1, 3, 4, 2, 2, 2)
結果是否有一個快速的方法來做到這一點R中?
在基礎R:
ave(value, value, FUN = seq_along)
這給:
[1] "1" "2" "1" "1" "1" "3" "4" "2" "2" "2"
如果你想獲得一個數字矢量回:
ave(seq_along(value), value, FUN = seq_along)
你可以這樣做:
result <- rep(NA,length(value))
for(i in unique(value)){
value_ind <- which(value == i)
result[value_ind] <- 1:length(value_ind)
}
result
[1] 1 2 1 1 1 3 4 2 2 2
溶液從dplyr
。
library(dplyr)
dt <- data_frame(value)
dt2 <- dt %>%
mutate(Count = 1) %>%
group_by(value) %>%
mutate(Count = cumsum(Count))
dt2$Count
[1] 1 2 1 1 1 3 4 2 2 2