【发布时间】:2021-04-29 01:31:14
【问题描述】:
我有一个如下所示的对称矩阵(这是 6 个动物之间的关系矩阵):
AN1 AN2 AN3 AN4 AN5 AN6
AN1 1 0.5 0 0.25 0 0.5
AN2 0.5 1 0 0.5 0 0
AN3 0 0 1 0.25 0 0
AN4 0.25 0.5 0.25 1 0.5 0
AN5 0 0 0 0.5 1 0
AN6 0.5 0 0 0 0 1
我想对该矩阵进行子集化,并仅选择存储在一维数据框中的一些动物。这是我想要的矩阵:
AN1 AN3 AN6
AN1 1 0 0.5
AN3 0 1 0
AN6 0.5 1 1
这是我尝试过的:
list_individuals <- as.list(df['ID']) # create list from the dataframe (the list contains the animals that I want to extract from the matrix: AN1, AN3 and AN6)
matrix2 <- subset(original_maxtrix, rownames(original_maxtrix) %in% list_individuals[["ID"]])
matrix3 <- subset(matrix2, colnames(matrix2) %in% list_individuals[["ID"]])
但我在选择列时遇到问题(最后一行代码): x[subset & !is.na(subset), vars, drop = drop] 中的错误: (下标) 逻辑下标太长
我在这里错过了什么?
【问题讨论】:
-
df 是一个数据框,其中一列包含我要从矩阵中提取的动物的 ID