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

如何将factoextra包get_dist的dist结果转为data.frame?

解决dist类型转data.frame的问题

直接用as.data.frame()转换dist对象会报错,因为dist是一种压缩存储的三角矩阵结构,无法直接被转换为数据框。需要先将其转为完整矩阵,再转成数据框,具体方法如下:

方法1:基础R + 管道实现

沿用你提供的代码,只需在as.data.frame()前先调用as.matrix():

library(factoextra)
data("USArrests")
res.dist <- get_dist(USArrests, stand = TRUE, method = "pearson")

# 转换为数据框
res_dist_df <- res.dist %>% as.matrix() %>% as.data.frame()

方法2:转成长格式数据框(可选)

如果需要得到每一对变量的距离记录(长格式),可以结合tidyr包处理:

library(tidyr)

res_dist_long_df <- res_dist_df %>% 
  rownames_to_column(var = "变量1") %>% 
  pivot_longer(cols = -变量1, names_to = "变量2", values_to = "距离值")

说明

  • 转换后的宽格式数据框,行名和列名均为原数据集的变量名,单元格对应变量间的距离值;
  • 长格式适合后续做可视化或进一步统计分析。

内容的提问来源于stack exchange,提问作者anderwyang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:15:36