我在 R 中有一个矩阵,其 id 作为行名和列名。我还有一个 id 列表。对于不在 id 列表中的行名,我需要用 NA 填充行。
id_list <- c(1079, 1081, 1082, 1083)
mat <- matrix(1, nrow = 5, ncol = 5)
rownames(mat) <- colnames(mat) <- c(1079, 1080, 1081, 1082, 1083)
想要的结果:
1079 | 1080 | 1081 | 1082 | 1083 | |
---|---|---|---|---|---|
1079 | 1 | 1 | 1 | 1 | 1 |
1080 | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 |
1081 | 1 | 1 | 1 | 1 | 1 |
1082 | 1 | 1 | 1 | 1 | 1 |
1083 | 1 | 1 | 1 | 1 | 1 |
类似这样的:
mat[!rownames(mat) %in% id_list, ] <- NA
mat
1079 1080 1081 1082 1083
1079 1 1 1 1 1
1080 NA NA NA NA NA
1081 1 1 1 1 1
1082 1 1 1 1 1
1083 1 1 1 1 1