gpt4 book ai didi

r - 你如何使用with.with为r中的唯一值创建序列

转载 作者:行者123 更新时间:2023-12-04 09:38:15 25 4
gpt4 key购买 nike

假设我有一个数值向量

  [1]  2844  4936  4936  4972  5078  6684  6689  7264  7264  7880  8133  9018  9968  9968 10247
[16] 11267 11508 11541 11607 11717 12349 12349 12364 12651 13025 13086 13257 13427 13427 13442
[31] 13442 13442 13442 14142 14341 14429 14429 14429 14538 14872 15002 15064 15163 15163 15324
[46] 15324 15361 15361 15400 15624 15648 15648 15648 15864 15864 15881 16332 16847 17075 17136
[61] 17136 17196 17843 17925 17925 18217 18455 18578 18578 18742 18773 18806 19130 19195 19254
[76] 19254 19421 19421 19429 19585 19686 19729 19729 19760 19760 19901 20530 20530 20530 20581
[91] 20629 20629 20686 20693 20768 20902 20980 21054 21079 21156


我想沿着此向量创建一个序列,但要使用唯一数字。例如

length(unique(vector))


是74,向量中总共有100个值。该序列应仅具有1-74之间的数字,但长度应为100,因为某些数字将被重复。

关于如何做到这一点的任何想法?
谢谢。

最佳答案

也许

 res <- as.numeric(factor(v1))
head(res)
#[1] 1 2 2 3 4 5


要么

 res1 <- match(v1, unique(v1))


要么

 library(fastmatch)
res2 <- fmatch(v1, unique(v1))


要么

res3 <- findInterval(v1, unique(v1))


数据

v1 <- c(2844, 4936, 4936, 4972, 5078, 6684, 6689, 7264, 7264, 7880, 
8133, 9018, 9968, 9968, 10247, 11267, 11508, 11541, 11607, 11717,
12349, 12349, 12364, 12651, 13025, 13086, 13257, 13427, 13427,
13442, 13442, 13442, 13442, 14142, 14341, 14429, 14429, 14429,
14538, 14872, 15002, 15064, 15163, 15163, 15324, 15324, 15361,
15361, 15400, 15624, 15648, 15648, 15648, 15864, 15864, 15881,
16332, 16847, 17075, 17136, 17136, 17196, 17843, 17925, 17925,
18217, 18455, 18578, 18578, 18742, 18773, 18806, 19130, 19195,
19254, 19254, 19421, 19421, 19429, 19585, 19686, 19729, 19729,
19760, 19760, 19901, 20530, 20530, 20530, 20581, 20629, 20629,
20686, 20693, 20768, 20902, 20980, 21054, 21079, 21156)

关于r - 你如何使用with.with为r中的唯一值创建序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28270934/

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