Фильтрация таблицы по имени строки - PullRequest
2 голосов
/ 16 августа 2011
  1. У меня есть список элементов в ab,

    ab <- list("M","O","E","P","Q","S","T","N","V","R")
    
  2. В другом списке tb, это список 2 * 2например,

    Пример набора данных,

    n <- c("M", "N", "O")
    tb <- lapply(1:10, function(i)matrix(sample(4), 2, 2, 
                                         dimnames=list(n[sample(3,2)], 
                                                       n[sample(3,2)])))
    names(tb) <- paste(1:10)
    
  3. Нам нужно отфильтровать только те таблицы, в которых имя строки 1-й таблицы в списке tb имеет 1-еэлемент в списке ab, во 2-й таблице есть 2-й элемент и так далее.Количество элементов в обоих списках ab и tb одинаково.

  4. Как сопоставить имена строк таблиц в списке со списком элементов?

1 Ответ

1 голос
/ 16 августа 2011
> is.in <- vector(len=length(ab))
> for(i in 1:length(ab) ) { is.in[i] <- ab[i] %in% rownames(tb[[i]])}
> is.in
 #[1]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

Большинство этих ab-букв не было в списке NMO, поэтому я просто проверил, пропустил ли я некоторые из них:

 > tb[[8]] N M
O 1 4
M 2 3

Но ab [8] = "N" нетв именах строк tb [[8]]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...