我有几百个2 * 2表,如下所示:
$`345`
N S
N 10 7
K 3 3
$`359`
N S
P 7 4
S 2 2
但我只需要选择行和列号中包含“N”的表格。我怎么能这样做,ifelse不起作用......
答案 0 :(得分:4)
你可以通过以下方式完成这项工作:
> n <- c("M", "N", "O")
> # create a sample data set
> m <- lapply(1:10, function(i)matrix(sample(4), 2, 2, dimnames=list(n[sample(3,2)], n[sample(3,2)])))
> names(m) <- paste(1:10)
> # looks like this
> m
$`1`
N M
O 1 3
M 2 4
... snip ...
$`10`
M O
M 1 3
N 4 2
>
> # filter it
> r <- Filter(function(x) all(sapply(dimnames(x), function(x)"N" %in% x)), m)
> r
$`2`
M N
O 4 2
N 1 3
$`4`
O N
N 1 3
O 2 4
$`5`
M N
N 4 3
O 1 2
$`7`
M N
O 4 1
N 3 2