从表排除如果=
如果我使用的是table()
我可以通过做排除元素:从表排除如果=
b <- factor(rep(c("A","B","C"), 10))
table(b, exclude="B")
现在,如果我要排除一切,但“B”?我试过 table(b, exlcude=!"B")
但它没有奏效。 table()
函数是否允许此功能?
您需要首先收集具有“B”级别的特定因子变量中的所有可能级别。可能有更简单的方法来做到这一点,但假设其所需的排斥发生的因素是“FAC1”,那么也许是这样的:
with(datafrm, table(fac1, fac2, fac3, exclude=setdiff(levels(fac1), "B")))
,我可能会做它不那么“双负”与subset
:
with(subset(datafrm, fac1 == "B"), table(fac1, fac2, fac3))
你是一个比我更好的mindreader。 – Andrie
不起作用。如果包含“B”,则setdiff(“B”,levels(fac1))为字符(0)。你必须把它们变成:setdiff(levels(fac1),“B”) –
@Joris Meys。固定。 (未经测试的代码的乐趣。) –
您可以使用setdiff
:
table(iris$Species,exclude=setdiff(iris$Species,"virginica"))
virginica
50
当然,你可能也只是子集的表对象:
table(iris$Species)["virginica"]
virginica
50
就这么简单
table(b)['B']
但对于数一个值的出现次数,就没有必要使用表。更简单的是:
sum(b=='B')
如果您不修复此问题,您可能会被关闭。哪个'table'参数?哪个功能?如果您发布了一些示例代码和预期结果,可能有人可以提供帮助。 – Andrie
认为他们的意思是表'功能' - 编辑。 – Spacedman