简体   繁体   English

使用R在数据框中创建新列

[英]Creating New columns in data Frame using R

I have a data frame given below; 我下面有一个数据框;

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

I am expecting an output below: 我期望下面的输出:

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

Wherever there is NPA is 'Yes' and Risk as 'High' there should tag 1. 如果NPA为“是”,风险为“高”,则应标记1。

The simplest way is as David said, 最简单的方法就是如David所说:

df.new <- as.data.frame((df == "Yes" | df == "High") + 0)
colnames(df.new) <- paste(colnames(df.new), '_new', sep='')

An option is using 一个选项正在使用

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM