如何计算给定因子中每个级别有多少个值? [英] How to count how many values per level in a given factor?
问题描述
我有一个data.frame mydf
,大约有2500行。这些行对应于列1 mydf $ V1
中的69个对象类,我想计算每个对象类有多少行。
我可以通过以下方法获得这些类的因子:
I have a data.frame mydf
with about 2500 rows. These rows correspond to 69 classes of objects in colum 1 mydf$V1
, and I want to count how many rows per object class I have.
I can get a factor of these classes with:
objectclasses = unique(factor(mydf$V1, exclude="1"));
R计算每个对象类的行的简洁R方法是什么?如果还有其他语言,我会循环遍历数组并保持计数,但是我是R编程的新手,并试图利用R的向量化操作。
What's the terse R way to count the rows per object class? If this were any other language I'd be traversing an array with a loop and keeping count but I'm new to R programming and am trying to take advantage of R's vectorised operations.
推荐答案
或使用 dplyr
库:
library(dplyr)
set.seed(1)
dat <- data.frame(ID = sample(letters,100,rep=TRUE))
dat %>%
group_by(ID) %>%
summarise(no_rows = length(ID))
请注意使用%>%
,这与在bash中使用管道相似。实际上,上面的代码将 dat
输送到 group_by
,并将该操作的结果输送到总结
。
Note the use of %>%
, which is similar to the use of pipes in bash. Effectively, the code above pipes dat
into group_by
, and the result of that operation is piped into summarise
.
结果是:
Source: local data frame [26 x 2]
ID no_rows
1 a 2
2 b 3
3 c 3
4 d 3
5 e 2
6 f 4
7 g 6
8 h 1
9 i 6
10 j 5
11 k 6
12 l 4
13 m 7
14 n 2
15 o 2
16 p 2
17 q 5
18 r 4
19 s 5
20 t 3
21 u 8
22 v 4
23 w 5
24 x 4
25 y 3
26 z 1
请参见 dplyr
简介了解更多背景信息,以及有关各个功能的详细信息的文档。
See the dplyr
introduction for some more context, and the documentation for details regarding the individual functions.
这篇关于如何计算给定因子中每个级别有多少个值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!