我下面有一个数据框;
NPA_Jan Risk_Jan NAP_Feb Risk_Feb
Yes High No Medium
No Low No Low
No High Yes High
Yes High Yes High
Yes Low No Low
我期望下面的输出:
NPA_Jan_New Risk_Jan_New NPA_Feb_New Risk_Feb_New
1 1 0 0
0 0 0 0
0 1 1 1
1 1 1 1
1 0 0 0
只要NPA为“是”,而风险为“高”,则应标记1。
答案 0 :(得分:2)
最简单的方法就是大卫所说的
df.new <- as.data.frame((df == "Yes" | df == "High") + 0)
colnames(df.new) <- paste(colnames(df.new), '_new', sep='')
答案 1 :(得分:1)
一个选项正在使用
out <- +(sapply(df, `%in%`, c("Yes", "High")))
colnames(out) <- paste0(colnames(df), "_new")
out
# NPA_Jan_new Risk_Jan_new NAP_Feb_new Risk_Feb_new
#[1,] 1 1 0 0
#[2,] 0 0 0 0
#[3,] 0 1 1 1
#[4,] 1 1 1 1
#[5,] 1 0 0 0