在 R 中的整数向量位置分配相反的值

  • 本文关键字:分配 位置 向量 整数 r
  • 更新时间 :
  • 英文 :


我有一个大的整数向量来测量事件的频率。 像这样的东西

1
23
45
23
3
2
45

我想以这种方式反转数字,将每个数字替换为有序列表中的相反数字:

1 becomes 45
2 becomes 23
3 becomes 3
23 becomes 2...

等等.... 考虑到数字重复。 除了创建和合并两个反转的唯一值向量之外,一种简单而优雅的方法(到目前为止我唯一想到的(? 寻求数学方法

预期产出:

45
2
1
2
3
23
1

好的。我想这就是你想要的。首先,你有你原来的价值观

x <- c(1, 23, 45, 23, 3, 2, 45)

然后我们得到一个唯一值的排序列表

uniqx <- sort(unique(x))

然后,我们可以将列表中的每个元素与其中一个唯一值匹配match(),然后将其替换为唯一值反向列表中的值。

rev(uniqx)[match(x, uniqx)]
# [1] 45  2  1  2  3 23  1

最新更新