【发布时间】:2021-08-05 21:01:53
【问题描述】:
我有这个 df,我将它转换成一个完整的矩阵。 df.wide 中的 1 表示缺失数据,0 表示实验中没有缺失数据。
df <- data.frame(N_ID = c("1:36","1:66","1:36","1:66","1:87","1:30","1:36","1:88","1:66","1:36"), sample = c("sample1","sample1","sample2","sample2","sample2","sample42","sample42","sample92","sample95","sample30"), n = c(1,1,1,1,1,1,1,1,1,1))
df.wide <- stats::xtabs(n ~ ., df)
现在我想得到一个矩阵,它是样本 x 样本,其中对角线元素等于 df.wide 中每一列的总和,也就是每个个体中缺失观察的数量,非对角线元素等于并集的总和每对样本之间的缺失数据。因此,在结果矩阵中,我希望 sample1 的单元格为 2,sample2 的单元格为 3,sample2 的单元格为 3。sample1、sample2 的单元格将等于 3,因为在 3 个唯一的 N_ID 处缺少这些数据两个样品。也就是说,对于每一对样本,0,0 应该算 0; 0,1 应计为 1; 1,0 应计为 1;并且 1,1 也应该算作 1。
【问题讨论】: