R - 创建一个顺序虚拟变量索引数组?

R - creating a sequential dummy variable index array?

我在数据表中有一列具有非连续的唯一值,比如 [1,2,3,100,101,200] 但我想要的是 [0,1,2,3,4,5] (或 [1,2,3,4,5,6] 用于 R 及其 1第一个索引。)在 python 中,我可以做一些简单的事情,例如:

lookup = {elem:idx for idx,elem in enumerate(column)}
reverse_lookup = {idx:elem for idx,elem in enumerate(column)} 
idx_array = [lookup[elem] for elem in column] 

在 R 中有没有一种简单的方法可以做到这一点?

编辑:感谢 comment/answer,我使用了 seq_along 函数:

c_idx <- seq_along(unique(off$callgroup))
c_val <- unique(off$callgroup)

a_idx <- seq_along(unique(off$agent_idx))
a_val <- unique(off$agent_idx)

如您所见,我有四个数组。 c_idx 是唯一值数组,c_val 是它们的顺序索引(通过 a_idx 和 a_val 为 agent_idx 设计相同)。在我的数据表中,任何给定的 c_val and/or a_val.

都有多个实例

有没有办法换出值? (R 看到 c_val 的给定值,检索索引,在同一索引下检索 c_idx 中的值,并在数据表上交换它们?)

显然,这并没有产生预期的效果:

off2$callgroup <-  replace(off$callgroup,c_val,c_idx)
off2$agent_idx <-  replace(off$agent_idx,a_val,a_idx)

也就是说,因为,第二个元素应该是真实索引的列表。而这些不是索引,而是值。

根据评论 link,这可以通过 seq_along 实现,例如 seq_along(4:10) :) https://renenyffenegger.ch/notes/development/languages/R/functions/seq_along