gpt4 book ai didi

r - 使用 R 中的 data.table 通过多变量组生成递归 ID

转载 作者:行者123 更新时间:2023-12-02 06:55:55 25 4
gpt4 key购买 nike

我找到了几个关于如何使用 R 中的 data.table 包按组生成 ID 的选项,但没有一个完全适合我的问题。希望有人能提供帮助。

在我的问题中,我有 160 个市场,它们属于一个国家/地区的 21 个地区。这些市场的编号为 1:160,每个市场中可能记录了多个观察结果。我想重组我的市场 ID 变量,使其代表每个地区内的独特市场,并在每个新地区重新开始计数。

这里有一些代码来表示我的问题:

require(data.table)
dt <- data.table(region = c(1,1,1,1,2,2,2,2,3,3,3,3),
market = c(1,1,2,2,3,3,4,4,5,6,7,7))
> dt
region market
1: 1 1
2: 1 1
3: 1 2
4: 1 2
5: 2 3
6: 2 3
7: 2 4
8: 2 4
9: 3 5
10: 3 6
11: 3 7
12: 3 7

目前,我的数据设置为表示

的结果

dt[, market_new := .GRP, by = .(region, market)]

但我想得到的是

    region market market_new
1: 1 1 1
2: 1 1 1
3: 1 2 2
4: 1 2 2
5: 2 3 1
6: 2 3 1
7: 2 4 2
8: 2 4 2
9: 3 5 1
10: 3 6 2
11: 3 7 3
12: 3 7 3

最佳答案

这似乎返回了你想要的

dt[, market_new:=as.numeric(factor(market)), by=region]

这里我们按区域划分数据,然后通过 factor() 函数为每个区域的每个市场赋予唯一 ID,并提取基础数字索引。

关于r - 使用 R 中的 data.table 通过多变量组生成递归 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31392116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com