我有一个向量,其中相同的单词“amount”以不同的间隔出现:
“金额”“选择”“评级”“金额”“选择”“金额”“选择”“选择”“评级”“选择”“金额”“选择”“评级”
所以在上面的例子中,“金额”出现在第1,4,6和11位。
我想创建一个每次遇到这个单词时会递增1的序列,这样我得到一个这样的序列: 1 1 1 2 2 3 3 3 3 3 4 4 4
任何想法我怎么能这样做??
提前感谢。
答案 0 :(得分:6)
您可以在逻辑向量(cumsum
)
v1=='amount'
cumsum(v1=='amount')
#[1] 1 1 1 2 2 3 3 3 3 3 4 4 4
v1 <- c("amount", "selection", "rating", "amount", "selection",
"amount" ,"selection" ,"selection", "rating" ,"selection" ,
"amount" ,"selection", "rating")
答案 1 :(得分:1)
您还可以使用ifelse
作为测试,并使用cumsum
作为测试结果。
library("magrittr") # for %>%
v1 <-
c("amount", "selection", "rating", "amount", "selection",
"amount", "selection", "selection", "rating", "selection",
"amount","selection", "rating")
ifelse(v1 %in% "amount", 1, 0) %>% cumsum