r - 使用 data.table 根据条件创建二进制列

标签 r dataframe data.table

我有一个名为data的数据框。我正在尝试为每个 CRD_NUMBIZ_DT 创建一个包含 0 和 1 的新列。我将检查 Jrny_Ind 的最大值,并将 1 分配给在该行中找到最大值的新列。

以下是要使用的数据:

  structure(list(JRNY_ID_NUM = c(115485143065, 115581455926, 115542253339, 
    115568253504, 115579064996, 115557373723), CRD_NUM = c(1000148004095169, 
    1000148004095169, 1000148004095169, 1000148004095169, 1000148004095169, 
    1000148004095169), BIZ_DT = structure(c(3L, 3L, 4L, 4L, 5L, 5L
    ), .Label = c("01-Jan-17", "02-Jan-17", "03-Jan-17", "04-Jan-17", 
    "05-Jan-17", "06-Jan-17", "07-Jan-17", "08-Jan-17", "09-Jan-17", 
    "10-Jan-17", "11-Jan-17", "12-Jan-17", "13-Jan-17", "14-Jan-17", 
    "15-Jan-17", "16-Jan-17", "17-Jan-17", "18-Jan-17", "19-Jan-17", 
    "20-Jan-17", "21-Jan-17", "22-Jan-17", "23-Jan-17", "24-Jan-17", 
    "25-Jan-17", "26-Jan-17", "27-Jan-17", "28-Jan-17", "29-Jan-17", 
    "30-Jan-17", "31-Jan-17"), class = "factor"), Jrny_Ind = c(1L, 
    2L, 1L, 2L, 1L, 2L)), .Names = c("JRNY_ID_NUM", "CRD_NUM", "BIZ_DT", 
    "Jrny_Ind"), class = c("data.table", "data.frame"), row.names = c(NA, 
    -6L), .internal.selfref = <pointer: 0x0000000002640788>)

期望的输出:

    JRNY_ID_NUM          CRD_NUM    BIZ_DT Jrny_Ind Last_Trip
1: 115485143065 1000148004095169 03-Jan-17        1    0
2: 115581455926 1000148004095169 03-Jan-17        2    1
3: 115542253339 1000148004095169 04-Jan-17        1    0
4: 115568253504 1000148004095169 04-Jan-17        2    1
5: 115579064996 1000148004095169 05-Jan-17        1    0
6: 115557373723 1000148004095169 05-Jan-17        2    1

我尝试获取每张卡片和日期的“最大行数”,如下所示:

data[, .SD[which.max(Jrny_Ind)], by = c("CRD_NUM","BIZ_DT")]

不确定如何使用data.table分配新列。

最佳答案

应该有一个副本。但现在:

data[, last_trip := as.integer(Jrny_Ind == max(Jrny_Ind)), by = .(CRD_NUM, BIZ_DT)]

关于r - 使用 data.table 根据条件创建二进制列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45940431/

相关文章:

r - 保存适合的 gam 对象时节省空间(mgcv::gam 和 scam::scam)

python - 数据框上的多个类次

r - 成对组合以及 data.table 中的计数

r - 将 R 图导出到 shapefile

R:计算 log(exp(...)) 的最大浮点误差

python - 连接多个数据帧时保留原始分类映射

python - Pandas 将 NaN 从零插值到下一个有效值

r - 各组最近值的总和

r - 根据唯一列项的计数创建 3 级指示变量

r - 从 CSV 文件创建时间序列