根据rowname过滤表格

时间:2011-08-16 17:02:52

标签: r

  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. 我们只需要过滤那些列表tb中第一个表的rowname在列表ab中有第一个元素的表,第二个表有第二个元素,依此类推。列表abtb中的元素数量相同。

  4. 如何将列表中表格的rownames与元素列表相匹配?

1 个答案:

答案 0 :(得分:1)

> 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-letter中的大多数都不在NMO列表中,所以我只是检查一下我是否错过了一些:

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

但是ab [8] =“N”不在tb [[8]]

的rownames中