代码之家  ›  专栏  ›  技术社区  ›  statnet22

在分类问题中,是否存在重新标记聚类的R函数?

  •  0
  • statnet22  · 技术社区  · 2 年前

    我有一个$N\times T$矩阵,其中$N$是观察次数,$T$是我的特定算法的迭代次数。

    对于每一次迭代,我使用的函数都会将$N$观测值聚类为多个聚类。请注意,簇的数量可以随着迭代而变化,并且簇不一定按存在顺序填充。

    例如,对于$N=10$的观测值,对于迭代$t=1$,函数可以将矩阵的第一列填充为: 11, 4, 10, 21, 23, 3, 17, 9, 4, 17 ,即,观测1被分配给簇11,观测2被分配给聚类4,依此类推。

    我想将此向量/列更改为按存在顺序填充聚类,即,我希望上述分类向量变为: 1, 2, 3, 4, 5, 6, 7, 8, 2, 7 .

    R中有没有一个函数可以帮我做到这一点,或者有人能建议几行代码来实现单个分类向量的期望输出,我可以将其扩展到我的整个矩阵?

    2 回复  |  直到 2 年前
        1
  •  1
  •   MrFlick    2 年前

    如果你有一个矢量

    x <- c(11, 4, 10, 21, 23, 3, 17, 9, 4, 17)
    

    如果您只想为每个级别分配唯一的ID,则可以使用

    match(x, unique(x))
    # [1] 1 2 3 4 5 6 7 8 2 7
    

    as.integer(factor(x, levels=unique(x)))
    # [1] 1 2 3 4 5 6 7 8 2 7
    
        2
  •  1
  •   Dj aman motihari    2 年前

    示例矩阵

    your_matrix <- matrix(c(11, 4, 10, 21, 23, 3, 17, 9, 4, 17,
                            12, 5, 11, 22, 24, 4, 18, 10, 5, 18), ncol = 2)
    

    按每列的存在顺序重新标记簇

    reordered_matrix <- apply(your_matrix, 2, function(x) as.numeric(factor(x, levels = unique(x))))
    

    打印结果

    print(reordered_matrix)