如何创建一个新列,当满足另一列的条件时它采用另一列的值
How to create a new column where it takes value of another column when another column's condition is satisfied
所以我有一个数据集,其中有帐号、报告日期和默认标志。
我想创建一个新列,如果默认标志 ==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
所以每个帐号都有多个条目,我想要一个新列,每当默认标志命中==1 时提取日期。
提前致谢! :)
我们可以在这里使用ifelse
:
df$new_date <- ifelse(df$`Default Flag` == 1, df$`Reporting date`, 0)
顺便说一下,我不知道您的列名称中是否真的有空格,但如果有,那么您需要在反引号中转义整个名称。这会导致难看的代码,所以也许坚持使用没有空格的单一名称。
另一种方法是将所有值设置为 0,然后更改满意的值:
df[3] <- c(0,nrow(df))
D[D[,2]==1,3]=D[D[,2]==1,1]
所以我有一个数据集,其中有帐号、报告日期和默认标志。 我想创建一个新列,如果默认标志 ==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
所以每个帐号都有多个条目,我想要一个新列,每当默认标志命中==1 时提取日期。
提前致谢! :)
我们可以在这里使用ifelse
:
df$new_date <- ifelse(df$`Default Flag` == 1, df$`Reporting date`, 0)
顺便说一下,我不知道您的列名称中是否真的有空格,但如果有,那么您需要在反引号中转义整个名称。这会导致难看的代码,所以也许坚持使用没有空格的单一名称。
另一种方法是将所有值设置为 0,然后更改满意的值:
df[3] <- c(0,nrow(df))
D[D[,2]==1,3]=D[D[,2]==1,1]