Создавайте уровни на основе нескольких переменных

Я хочу создать переменную с именем «Фактор», основанную на двух переменных: имени и дне. Я хочу назначить один и тот же номер одному и тому же человеку в тот же день, а другой номер одному и тому же человеку в другой день.

Например,

Name    Day   Factor  
 Joe      1    1      
 Joe      1    1      
 Joe      2    2      
 Luke     1    3     
 Luke     2    4    
 Luke     2    4    

Я понимаю, как создавать уровни на основе 1 переменной (это имя в моем примере кода ниже), но как мне расширить код, чтобы он также учитывал «день» для создания уровней?

b$ID<-as.factor(b$name)
levels(b$ID) <- 1:2

person Louis    schedule 11.03.2016    source источник
comment
Я подозреваю, что вы ищете interaction   -  person A. Webb    schedule 11.03.2016
comment
data.table::rleid тоже сделал бы это   -  person Rich Scriven    schedule 11.03.2016


Ответы (1)


Как. Уэбб упомянул, что вы можете использовать interaction для создания уровней для нескольких переменных.

as.numeric(interaction(df$Day, df$Name))

#[1] 1 1 2 3 4 4
person Ronak Shah    schedule 11.03.2016