R:创建不等间距的序列

时间:2015-03-26 17:47:30

标签: r indexing sequence spacing

我有一个向量,其中相同的单词“amount”以不同的间隔出现:

“金额”“选择”“评级”“金额”“选择”“金额”“选择”“选择”“评级”“选择”“金额”“选择”“评级”

所以在上面的例子中,“金额”出现在第1,4,6和11位。

我想创建一个每次遇到这个单词时会递增1的序列,这样我得到一个这样的序列: 1 1 1 2 2 3 3 3 3 3 4 4 4

任何想法我怎么能这样做??

提前感谢。

2 个答案:

答案 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