【发布时间】:2019-05-10 22:03:01
【问题描述】:
我有这样的数据:
library(data.table)
id <- c("1232","1232","1232","4211","4211","4211")
conversion <- c(0,0,0,1,1,1)
DT <- data.table(id, conversion)
id date conversion
1232 2018-01-01 0
1232 2018-01-03 0
1232 2018-01-04 0
4211 2018-04-01 1
4211 2018-04-04 1
4211 2018-04-06 1
我想根据 id 行仅为每个组的最后一行创建一个二进制值。只有当组的转换为 1 时,二进制才会为 1。
id date conversion lastconv
1232 2018-01-01 0 0
1232 2018-01-03 0 0
1232 2018-01-04 0 0
4211 2018-04-01 1 0
4211 2018-04-04 1 0
4211 2018-04-06 1 1
我尝试在 data.table 中使用一些带有“mult”参数的示例,但只返回错误。
DT[unique(id), lastconv := 1, mult = "last"]
【问题讨论】:
-
如果你有
setkey在你的行之前你的例子会起作用。请注意,mult = "last"也会导致 1 被放置在 id 1232 上。
标签: r data.table