如何在R语言中从Minimum Spanning Trees模型查找各数据点的连接实例?
获取最小生成树(MST)中每个数据点的连接实例
ape::mst()返回的是一个邻接矩阵——矩阵中mst.mod[i,j] = 1代表实例i和实例j在MST中相连,0则无连接。基于这个矩阵,你可以批量提取所有数据点的连接对象:
核心代码
# 加载数据并构建MST(复用你的代码) data(iris) mst.mod <- ape::mst(dist(iris)) # 提取每个实例的连接对象 connections <- lapply(1:nrow(mst.mod), function(i) { # 找出当前行中值为1的列索引,即相连的实例编号 which(mst.mod[i, ] == 1) }) # 给列表元素命名,对应实例编号 names(connections) <- 1:nrow(mst.mod)
查看结果
比如你提到的实例1,直接调用即可查看它的连接:
connections[["1"]] # 输出应为 [1] 28 40
转为易读的数据框格式(可选)
如果需要结构化的表格输出,可以把结果转为数据框:
connections_df <- do.call(rbind, lapply(names(connections), function(id) { data.frame( 实例编号 = id, 连接实例 = connections[[id]] ) })) # 查看前5行示例 head(connections_df, 5)
内容的提问来源于stack exchange,提问作者Phoebe
相关产品推荐
相关产品推荐

