满足另一列条件时如何创建新列并使用另一列的值

时间:2018-07-27 06:17:36

标签: r extract data-analysis data-manipulation

所以我有一个数据集,其中有帐号,报告日期和默认标志。 我想创建一个新列,如果默认标志== 1,则新列应选择该日期,否则为0。

Reporting date Default Flag Account Number
31-05-2006          1
30-06-2006          0
31-07-2006          0
31-08-2006          1
30-09-2006          0
31-10-2006          0
30-11-2006          1
31-12-2006          0
31-01-2007          0 

因此,每个帐号都有多个条目,我想要一个新列,只要Default标志达到== 1便提取日期。

提前谢谢! :)

2 个答案:

答案 0 :(得分:0)

我们可以在此处使用ifelse

df$new_date <- ifelse(df$`Default Flag` == 1, df$`Reporting date`, 0)

顺便说一句,我不知道您的列名称中是否确实包含空格,但是如果它们确实包含空格,那么您将需要在引号中转义整个名称。这可能会导致代码很丑陋,因此可能会坚持使用单个名称而不带空格。

答案 1 :(得分:0)

另一种方法是将所有值设置为0,然后更改满意的值:

df[3] <- c(0,nrow(df))
D[D[,2]==1,3]=D[D[,2]==1,1]