如果我使用的是table()
,我可以通过以下方式排除元素:
b <- factor(rep(c("A","B","C"), 10))
table(b, exclude="B")
现在如果我想排除“B”以外的所有内容怎么办?
我试过了
table(b, exlcude=!"B")
但它没有奏效。 table()
函数是否允许此功能?
答案 0 :(得分:2)
您需要首先收集具有(具有)级别“B”的特定因子变量中的所有可能级别。有可能更简单的方法来做到这一点,但假设所需的排除发生的因素是'fac1',那么可能是这样的:
with( datafrm, table(fac1, fac2, fac3, exclude=setdiff(levels(fac1), "B") ) )
我可能会用subset
:
with(subset( datafrm, fac1 == "B"), table(fac1, fac2, fac3) )
答案 1 :(得分:0)
您可以使用setdiff
:
table(iris$Species,exclude=setdiff(iris$Species,"virginica"))
virginica
50
当然,您也可以只对您的表对象进行子集化:
table(iris$Species)["virginica"]
virginica
50
答案 2 :(得分:0)
就像
一样简单table(b)['B']
但是为了计算一个值的出现次数,不需要使用表格。更简单的是:
sum(b=='B')