gpt4 book ai didi

r - 生成和求和矩阵

转载 作者:行者123 更新时间:2023-12-04 03:57:45 25 4
gpt4 key购买 nike

我是R的新手,所以请原谅我认为这是一个相对简单的问题。

我有以下形式的数据

    1   2   3   4   5
A 0 1 1 0 0
B 1 0 1 0 1
C 0 1 0 1 0
D 1 0 0 0 0
E 0 0 0 0 1

其中A-E是人,1-5是他们是否具有这种素质的二进制文件。如果A和B的任何质量1-5的总和等于2,我需要制作一个A-E矩阵,其中单元格A,B = 1(如果它们共享至少一种质量)。简单的5x5将是:
    A   B   C   D   E
A 1
B 1 1
C 1 0 1
D 0 1 0 1
E 0 1 0 0 1

然后,我需要对整个矩阵求和。 (以上为9)。我有成千上万的观察结果,所以我无法手动完成。我确信只有几行代码,我只是经验不足。

谢谢!

编辑:我已经从.csv文件中导入了数据(上面的1-5)作为变量,在实际数据中我有40个变量。 A-E是对人的唯一ID观测值,大约是2000。我还想知道如何首先将其转换为矩阵,以便执行您已经提供的出色答案。谢谢!

最佳答案

您可以在此处使用矩阵乘法

out <- tcrossprod(m)
# A B C D E
# A 2 1 1 0 0
# B 1 3 0 1 1
# C 1 0 2 0 0
# D 0 1 0 1 0
# E 0 1 0 0 1

然后根据需要将对角线设置为1
diag(out) <- 1

正如DavidA在评论中指出的, tcrossprod基本上就是 m %*% t(m)
他们计算 sum的几种方法l这是一种
sum(out[upper.tri(out, diag=TRUE)] , na.rm=TRUE)

关于r - 生成和求和矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29635528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com