You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用FAMD进行PCA个体可视化时重复行名错误的解决方法

解决FAMD个体因子图绘制时的行名重复错误

问题原因

报错提示duplicate 'row.names' are not allowed,核心原因是你的explan_df数据集存在重复行名,fviz_famd_ind生成个体图时需要基于唯一行名处理数据,重复行名触发了冲突。

解决步骤

  1. 验证行名重复情况
    先确认原数据的行名是否确实重复:

    # 检查是否存在重复行名
    any(duplicated(rownames(explan_df)))
    

    返回TRUE则说明行名重复是问题根源。

  2. 设置唯一行名
    给数据集配置唯一行名,最简单的方式是用行号作为行名:

    # 重置行名为唯一的行序号
    rownames(explan_df) <- 1:nrow(explan_df)
    

    如果你有业务专属的唯一标识列(比如用户ID、订单号),也可以用该列值设置行名(需确保该列无重复):

    # 假设存在唯一标识列unique_id,用它设置行名
    rownames(explan_df) <- explan_df$unique_id
    # 若不需要保留该列可删除
    explan_df$unique_id <- NULL
    
  3. 重新执行分析与绘图
    重新运行FAMD分析并绘制个体因子图:

    library(factoextra)
    # 重新执行FAMD
    df_famd <- FAMD(explan_df, graph=TRUE)
    # 绘制2D个体因子图
    fviz_famd_ind(df_famd, col.ind = "cos2")
    

额外说明

  • df_famd$ind$cos2的矩阵类型不影响绘图,只要行名唯一,fviz_famd_ind就能正常处理。
  • 若原数据未主动设置行名,R默认会用1、2、…作为行名,但如果之前的合并、筛选等操作导致行名重复,同样会触发该错误,重置行名即可解决。

内容的提问来源于stack exchange,提问作者Asal Khoshravan Azar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 04:42:04