【问题标题】:calculating sum of all against all columns with matching row count针对具有匹配行数的所有列计算所有列的总和
【发布时间】:2016-05-13 02:49:04
【问题描述】:

我有一个 df,其中有几列的值为 0 或 1。类似于:

a b c d e
1 0 0 0 0
0 1 0 1 0
0 1 0 1 0
1 0 1 0 1

如果列在同一行中有 1,我想创建一个 5 x 5 矩阵来显示总计数。我只想考虑 1,如果是对角线,它会自动反映该列中的总行数为 1。输出如下:

  a b c d e
a 2 0 1 0 1
b 0 2 0 2 0
c 1 0 1 0 1 
d 0 2 0 2 0
e 1 0 1 0 1

谢谢。

苏迪尔

【问题讨论】:

    标签: r


    【解决方案1】:

    转换为矩阵并取叉积:

    m <- as.matrix(d)
    crossprod(m,m)
    

    【讨论】:

    • 感谢 Marat...太棒了.. 没想到会这么简单 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 2011-09-02
    • 2018-07-12
    • 2020-12-02
    • 2023-01-16
    • 2012-11-14
    相关资源
    最近更新 更多