2015-01-15 47 views
1

說我有在數據幀中,data一個向量,0和1的,是這樣的:創建基於R中邏輯測試遞增的標籤

v1<- c(0,0,1,1,0,1,0) 

我想要一個新的載體,其值a或b,根據v1中的值是0還是1.此外,我希望第一個a是a1,第二個是a2。我想第一個B是B1,第二是B2等的輸出向量,v2,看起來像

c(a1,a2,b1,b2,a3,b3,a4) 

我知道我可以做一個簡單的ifelse語句,使得

data$v2 <- ifelse(data$v1=0,'a','b') 

但是,我不知道如何添加一個遞增的整數

回答

6

一種可能性:

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

而不是letters您可以使用c("a", "b")。但是,letters = 7個擊鍵與c("a", "b") = 11個擊鍵和6個shift

+0

我正要發佈一個不太優雅的答案。謝謝你爲我省下尷尬。 –

+0

@BondedDust你已經從尷尬中拯救了我,我不知道有多少次... – Henrik

+0

感謝您的回覆。如果我想讓文本標籤更復雜,我將如何修改?例如,cat1,cat2,dog1,dog2? – colin