Фильтрация матрицы - PullRequest
       5

Фильтрация матрицы

0 голосов
/ 10 августа 2011

У меня есть список полных матриц, и каждая матрица выглядит следующим образом:

     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.как я выберу это?

1 Ответ

1 голос
/ 10 августа 2011

Вопрос не совсем ясен, но мне кажется, что вы пытаетесь найти способ извлечь определенные столбцы из вашей полной матрицы. Извлекаемые столбцы находятся в маленькой матрице, поэтому в этом случае извлекаются столбцы 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")))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...