我有一个条目矩阵:
testMat <- matrix(1:30, nrow = 10)
rownames(testMat) <- letters[1:10]
...和一个行名列表:
rem <- c("d", "e", "f", "i")
提取仅包含列表 'rem' 中提供的名称的行的矩阵很容易:
testMat[rem,]
按照这个逻辑,我想从矩阵中删除列表“rem”中提供的名称的行。但
testMat[-rem,]
Error in -rem : invalid argument to unary operator
失败。为什么这不起作用?
最佳答案
您正在寻找 %in%
:
testMat[!rownames(testMat) %in% rem, ]
[,1] [,2] [,3]
a 1 11 21
b 2 12 22
c 3 13 23
g 7 17 27
h 8 18 28
j 10 20 30
负索引仅适用于数字索引。
关于从 R 中的矩阵中删除行名列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22040206/