我有一个带有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”列分组。
希望这是有道理的...... 保罗。
答案 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