来自R中另一列因子的标记因子

时间:2015-03-11 11:55:10

标签: r

我有一个带有2个因子级别的列/向量的dtaframe ......这些可以改变,但总会有2个。 我想创建一个新的列/向量,为第一个因子指定一个'0',为第二个因子指定一个'1'所以无论我的原始因子字段是什么,我总是得到一列0和1

PART   col1    newcol
 A      a       0
 A      a       0
 A      a       0
 A      a       0
 A      b       1
 A      b       1
 A      b       1
 A      b       1
 B      c       0
 B      c       0
 B      c       0
 B      c       0
 B      d       1
 B      d       1
 B      d       1
 B      d       1

但col1可以是b或c,或d或e ......等......无论哪种方式,我总是想要用'0'和'创建col。 '1'。 它应按第一个“PART”列分组。

希望这是有道理的...... 保罗。

1 个答案:

答案 0 :(得分:0)

你可以尝试

library(dplyr)
df1 %>% 
    group_by(PART) %>%    
    mutate(newcol=factor(col1, labels=0:1))
    #or
    #mutate(newcol= as.numeric(factor(col1))-1)
#    PART col1 newcol
#1     A    a      0
#2     A    a      0
#3     A    a      0
#4     A    a      0
#5     A    b      1
#6     A    b      1
#7     A    b      1
#8     A    b      1
#9     B    c      0
#10    B    c      0
#11    B    c      0
#12    B    c      0
#13    B    d      1
#14    B    d      1
#15    B    d      1
#16    B    d      1

或使用ave

中的base R
 with(df1, as.numeric(ave(as.character(col1), PART, FUN=factor)))-1
 #[1] 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1