【发布时间】:2019-12-10 08:43:04
【问题描述】:
我有以下示例数据:
> so <- data.table(Credit_id = rep(c("1-A", "17-F", "2-D"), each = 3), Period = rep(1:3, times = 3), Due_days = c(0,0,0, 0,30,0, 0,30,60))
> so
Credit_id Period Due_days
1: 1-A 1 0
2: 1-A 2 0
3: 1-A 3 0
4: 17-F 1 0
5: 17-F 2 30
6: 17-F 3 0
7: 2-D 1 0
8: 2-D 2 30
9: 2-D 3 60
数据显示了三个不同的信用在投资组合的前三个月中的表现。 Credit_id 是主键,Period 是时间索引,Due_days 显示客户在给定时间段内逾期的天数。
我想创建一个新列 Flag,它可以采用两个值:0 和 1。如果信用(按 Credit_id 分组)等于或大于,Flag 应该采用值 1 30.
这是我想要得到的结果:
Credit_id Period Due_days Flag
1: 1-A 1 0 0
2: 1-A 2 0 0
3: 1-A 3 0 0
4: 17-F 1 0 1
5: 17-F 2 30 1
6: 17-F 3 0 1
7: 2-D 1 0 1
8: 2-D 2 30 1
9: 2-D 3 60 1
也就是说,将1 分配给至少有一行Due_days >= 30 的组。
【问题讨论】:
标签: r group-by data.table