【发布时间】:2019-01-14 16:54:22
【问题描述】:
我有一个包含 1,000 个矩阵的列表,它们的前两个元素是:
> Bpam[1:2]
[[1]]
cluster sil_width
D.var 1 0.7445190
Hy.adu 1 0.7233527
A.cra 0 0.8563551
Cu.cir 0 0.8483707
Sp.sp 0 0.8461553
E.gad 0 0.8368920
L.elo 0 0.8341050
A.mor 0 0.8219688
H.com 0 0.7046171
S.cad 0 0.5731629
[[2]]
cluster sil_width
Hy.adu 1 0.5518385
D.var 1 0.1878755
Ab.gad 0 0.8183177
L.elo 0 0.7964595
A.cra 0 0.7964595
Cu.cir 0 0.7879583
A.mor 0 0.7667134
S.cad 0 0.5821773
H.com 0 0.5644358
请注意,行数不同(“Sp.sp”在 Bpam[[2]] 中不存在。我想创建一个由 n 列和 1,000 行组成的矩阵(其中 n 是不同行名的总数)列表)以保存列表中每个矩阵的变量簇,如果缺少其中一行,则保存 NA。 我试过了
NA.matrix <- matrix(rep(NA, n*length(Bpam)), length(Bpam), n)
colnames(NA.matrix) <- A # char vector with names in n
#
clus.memb.p <- sapply(1:length(Bpam), function(x)
NA.matrix[x, which(colnames(NA.matrix) %in% rownames(Bpam[[x]]))]
<- Bpam[[x]][,1])
但它不返回矩阵。 任何帮助都将受到欢迎。
【问题讨论】: