根据R中的逻辑测试创建递增的标签

col*_*lin 1 r

假设我在数据框中有一个data0和1的向量,如下所示:

v1<- c(0,0,1,1,0,1,0)
Run Code Online (Sandbox Code Playgroud)

我想要一个新的向量,其值为a或b,基于值v1是0还是1.此外,我希望第一个a为a1,第二个为a2.我希望第一个b是b1,第二个是b2,等等.输出矢量v2看起来像

c(a1,a2,b1,b2,a3,b3,a4)
Run Code Online (Sandbox Code Playgroud)

我知道我可以做一个简单的ifelse陈述

data$v2 <- ifelse(data$v1=0,'a','b')
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何在中添加递增整数.

Hen*_*rik 6

一种可能性:

paste0(letters[v1 + 1], ave(v1, v1, FUN = seq_along))
#   [1] "a1" "a2" "b1" "b2" "a3" "b3" "a4"
Run Code Online (Sandbox Code Playgroud)

而不是letters你可能会使用c("a", "b").但是,letters= 7次击键vs c("a", "b")= 11次击键,6次shift.