我有一个完整矩阵列表,每个矩阵看起来像,
P V E T R L K A -
P 17 0 1 0 0 0 0 0 0
S 3 0 2 0 1 1 1 0 0
O 2 0 0 1 0 0 0 0 1
V 0 2 0 0 0 0 0 1 0
M 0 3 0 0 0 0 0 0 0
L 3 0 0 0 0 0 0 0 0
C 1 0 0 0 0 0 0 0 0
在过滤某些条件后,我留下了2 * 2矩阵的列表,其中每个矩阵看起来像:
P E
P 17 1
S 3 2
从完整矩阵中,我只需要选择2 * 2矩阵中的列。 我将如何选择它?
答案 0 :(得分:1)
问题并不完全清楚,但在我看来,您正试图找到一种从完整矩阵中提取某些列的方法。要提取的列是小矩阵中的列,因此在这种情况下提取列P
和E
。
以下是如何执行此操作。首先,使用colnames
查找小矩阵中列的名称。
colnames(sub)
[1] "P" "E"
然后使用数组子集从完整矩阵中提取这些列:
full[, colnames(sub)]
P E
P 17 1
S 3 2
O 2 0
V 0 0
M 0 0
L 3 0
C 1 0
您的数据是:
full <- structure(c(17L, 3L, 2L, 0L, 0L, 3L, 1L, 0L, 0L, 0L, 2L, 3L,
0L, 0L, 1L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L,
0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L,
0L, 0L, 0L), .Dim = c(7L, 9L), .Dimnames = list(c("P", "S", "O",
"V", "M", "L", "C"), c("P", "V", "E", "T", "R", "L", "K", "A",
"X.")))
sub <- structure(c(17L, 3L, 1L, 2L), .Dim = c(2L, 2L), .Dimnames = list(
c("P", "S"), c("P", "E")))