楼主: dixiaohui
2824 9

[问答] 从距离矩阵中提取下三角矩阵 [推广有奖]

  • 0关注
  • 0粉丝

高中生

47%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
415 点
帖子
17
精华
0
在线时间
23 小时
注册时间
2021-8-9
最后登录
2023-4-29

楼主
dixiaohui 发表于 2021-8-11 07:49:51 来自手机 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我需要从n*n的距离矩阵中把下三角矩阵提取出来,试过了lower.tri,但是会把上三角变成0,有没有别的办法只要下三角数据,其它都是空的,急求大神帮忙
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:距离矩阵 lower LOWE 有没有 wer

沙发
owenqi 在职认证  学生认证  发表于 2021-8-11 10:01:21
没太明白,正常的dist返回的不就是你需要的结果吗?
  1. dist(cbind(runif(5),runif(5)))
复制代码


藤椅
dixiaohui 发表于 2021-8-11 10:19:32 来自手机
dixiaohui 发表于 2021-8-11 07:49
我需要从n*n的距离矩阵中把下三角矩阵提取出来,试过了lower.tri,但是会把上三角变成0,有没有别的办法只要 ...
是的,但是算dist这个方法比较古老,我用很旧的版本做的,可视化就很不方便,连ggplot也没有,所以想把距离矩阵导出来用新版本做,可是把下三角的转化为矩阵输出后就会变成n*n的,不能用hclust聚类,所以想重新把矩阵转化为下三角的,不知道解释明白了没

板凳
dixiaohui 发表于 2021-8-11 10:21:07 来自手机
owenqi 发表于 2021-8-11 10:01
没太明白,正常的dist返回的不就是你需要的结果吗?
是的,但是算dist这个方法比较古老,我用很旧的版本做的,可视化就很不方便,连ggplot也没有,所以想把距离矩阵导出来用新版本做,可是把下三角的转化为矩阵输出后就会变成n*n的,不能用hclust聚类,所以想重新把矩阵转化为下三角的,不知道解释明白了没

报纸
dixiaohui 发表于 2021-8-11 19:12:01 来自手机
dixiaohui 发表于 2021-8-11 07:49
我需要从n*n的距离矩阵中把下三角矩阵提取出来,试过了lower.tri,但是会把上三角变成0,有没有别的办法只要 ...
给自己顶一下

地板
owenqi 在职认证  学生认证  发表于 2021-8-11 20:14:01
dixiaohui 发表于 2021-8-11 10:21
是的,但是算dist这个方法比较古老,我用很旧的版本做的,可视化就很不方便,连ggplot也没有,所以想把距 ...
没太看明白,你看看这个是不是你想要的?
http://www.sthda.com/english/wiki/ggplot2-quick-correlation-matrix-heatmap-r-software-and-data-visualization

7
dixiaohui 发表于 2021-8-13 18:48:31 来自手机
owenqi 发表于 2021-8-11 20:14
没太看明白,你看看这个是不是你想要的?
不是的,这个只是把坐标提出来,不是生成下三角矩阵,谢谢

8
owenqi 在职认证  学生认证  发表于 2021-8-14 00:38:06
dixiaohui 发表于 2021-8-13 18:48
不是的,这个只是把坐标提出来,不是生成下三角矩阵,谢谢
那你可以用Matrix包里面的tril来实现
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

9
pengxhan 发表于 2021-8-14 06:41:30 来自手机
dixiaohui 发表于 2021-8-11 07:49
我需要从n*n的距离矩阵中把下三角矩阵提取出来,试过了lower.tri,但是会把上三角变成0,有没有别的办法只要 ...
是产生下三角且对称矩阵吗?举个例子

10
小朝 发表于 2021-8-14 20:03:21

a <- matrix(1:9,nrow = 3)
# 方法1
b <- a * (1-upper.tri(a))
b[b==0] <- NA
b
# 方法2
library(Matrix)
tril(a)

已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 热心帮助其他会员
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

幽灵之目:小视野里的小问题。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-5 07:16