我有以下数据框:
> Mice
Blood States Minute
1 0.875 X0 0.8352569
2 0.875 A2 0.7551901
3 0.625 X0 1.4508139
4 0.625 A1 0.7876343
5 0.375 X0 1.1345252
6 0.125 X0 0.8699363
7 0.375 X0 0.9378742
8 1.125 H1 0.9769522
9 0.625 X0 0.4716321
10 0.875 H1 0.9935999
11 0.625 X0 1.0025917
12 0.375 A1 1.0703999
13 0.375 X0 1.3044854
14 0.875 H1 0.6720436
15 0.875 A1 1.0431863
因此,每只老鼠的“血液”中都有一些药物的价值,并检查它们的“状态”。这只是我的数据框架的一部分,但鼠标可以处于4种不同的状态。 “分钟”是指老鼠出现什么事情,无所谓。
对于“血液”的每个值,小鼠可以处于4种不同状态中的任何一种,我想计算每个类别中有多少观察值。
具有Blood和States列的count()函数不起作用,因为“States”是因子列
答案 0 :(得分:1)
要在因子级别上操作,您可以使用tapply
或by
。如果您有Mice$Blood
的离散比例,请将其转换为因子:
> by(mice$States, as.factor(mice$Blood), function(x) summary(factor(x)))
as.factor(mice$Blood): 0.125
X0
1
------------------------------------------------------------------------------------------------
as.factor(mice$Blood): 0.375
A1 X0
1 3
------------------------------------------------------------------------------------------------
as.factor(mice$Blood): 0.625
A1 X0
1 3
------------------------------------------------------------------------------------------------
as.factor(mice$Blood): 0.875
A1 A2 H1 X0
1 1 2 1
------------------------------------------------------------------------------------------------
as.factor(mice$Blood): 1.125
H1
1
返回的对象是一个列表,因此您可以将其捕获并用于您的目的。