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

如何生成参考图所示同时包含正负值的距离矩阵?

实现步骤

核心原理

dist() 函数默认输出的是对称的非负距离结果,要实现上三角正、下三角负的效果,只需将返回的dist对象转为普通矩阵,分别对上下三角区域做正负赋值即可,无需导入外部数据集,可以直接用随机生成数据或R内置数据集完成。

完整代码示例

# 1. 生成测试数据(无需导入外部数据集,这里随机生成10个5维样本,也可替换为内置数据集如iris[,1:4])
set.seed(123) # 固定随机种子方便结果复现
test_data <- matrix(rnorm(50), nrow = 10, ncol = 5)

# 2. 计算基础距离并转为矩阵
dist_obj <- dist(test_data, diag = TRUE, upper = TRUE)
full_mat <- as.matrix(dist_obj)

# 3. 分别设置上下三角的正负值
full_mat[upper.tri(full_mat)] <- abs(full_mat[upper.tri(full_mat)]) # 上三角为正
full_mat[lower.tri(full_mat)] <- -abs(full_mat[lower.tri(full_mat)]) # 下三角为负
# 对角线默认保留0,如有需求可自行调整

# 查看最终结果
print(full_mat)

补充说明

如果需要使用内置数据集测试,只需把第一步的test_data替换为内置数据的数值列即可,例如替换为 test_data <- mtcars[,1:7] 就能直接用mtcars数据集计算,无需额外导入文件。


内容的提问来源于stack exchange,提问作者Chi Hyung Park

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:24:03