[英]Subsetting a matrix by row names and column names in R
我有一個看起來像這樣的對稱矩陣(這是 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
我想子集這個矩陣和 select 只有一些動物存儲在一維 dataframe 中。 這是我想要的矩陣:
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] 中的錯誤:(下標)邏輯下標太長
我在這里想念什么?
嘗試以這種方式過濾行和列:
matrix[rownames(matrix)%in%list_individuals,colnames(matrix)%in%list_individuals]
只有list_individuals
中包含的行和列將保留在 output 中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.