2016-05-16 74 views
1

我需要創建組列 - B對應於另一列 - 一個「ifelse」創建基於多組列

DF 
A  B 
XXL 1 
XXL 1 
XL 2 
L  3 
M  4 
M  4 
S  5 

我試圖用多個ifelse聲明。但是這並不奏效,因爲它返回了零列。以及我試圖使用矢量化的方式ifelse導致相同的方式。 謝謝你的任何建議。

回答

2

我們既可以使用matchfactor

DF$B <- with(DF, match(A, unique(A))) 
DF$B 
#[1] 1 1 2 3 4 4 5 

或者

as.numeric(factor(DF$A, levels = unique(DF$A))) 
#[1] 1 1 2 3 4 4 5 

這裏有一些其他的選項,以及

cumsum(!duplicated(DF$A)) 
#[1] 1 1 2 3 4 4 5 

或用data.table

library(data.table) 
setDT(DF)[, B:= .GRP, A] 
+1

噢謝謝你!太簡單 :) – HoHoHo