R:计算每个类别的观察次数
数据挖掘
r
数据集
预处理
计数
2022-02-15 09:18:48
2个回答
您也可以使用dplyr软件包执行此操作。该dplyr包具有group_by按一个或多个变量对数据进行分组并summarise执行一些聚合功能的功能。该dplyr软件包还支持“管道”表示法%>%。这种表示法意味着前一个函数的输出是下一个函数的第一个参数。这是您的一个变量的样子。该dplyr包也很好,因为它的功能不需要引用列名或在字符向量中。
library(dplyr)
my_summary_data <- mydata %>%
group_by(Replicate) %>%
summarise(Count = n())
# The last line creates a new column named Count with a value calculated by n(),
# which counts observations (rows) per group.
输出类似于:
my_summary_data
Replicate Count
1 8
2 7
该group_by函数可以按多列分组,所以
my_summary_data <- mydata %>%
group_by(Replicate, Node) %>%
summarise(Count = n())
将产生:
Replicate Node Count
1 1 5
1 2 3
2 1 7
我喜欢使用该plyr库,但还有其他方法:
library(plyr)
ddply(mydata, c('Replicate','Node','Day'), nrow)
ddinddply表示输入是数据帧,输出也是数据帧- 行按作为第二个参数给出的列的值分组
- 最后一个参数是应用于每个组的函数,在这种情况下
nrow只是简单地计算组中的行数。
如果您想同时命名该列,您可以执行以下操作:
library(plyr)
ddply(mydata, c('Replicate','Node','Day'), function(groupDF) {
data.frame(countObservations=nrow(groupDF))
})

