为数据框中的每个因素创建一个 table

Create a table for each factor in dataframe

我有一个如下所示的数据框:

>head(df)
                  Number          Label
1                      2            1-5
2                      2            1-5
3                      0            1-5
4                      2            1-5
5                      1           1-12
6                      0            1-1

我想为每个标签创建一个 table。所以最后的成品是这样的:

Label   Number   Frequency
1-5     2            3
1-5     0            1
1-12    1            1
1-1     0            1

目前,我可以使用基数 R 在多行中执行此操作,例如

df2 <- df[df$Label=="1-1", ]
final.df <- as.data.frame(table(df2$Number))

我对每个标签反复执行此操作。这是超级低效的。有没有办法更有效地做到这一点?

感谢帮助!

可以通过dplyr

轻松获得
library(dplyr)

df %>%
group_by(Label,Number) %>%
summarise(Frequency=n(),.groups='drop')

输出;

  Label Number Frequency
  <fct>  <int>     <int>
1 1-1        0         1
2 1-12       1         1
3 1-5        0         1
4 1-5        2         3

除了Samet的方法,还可以使用dplyr中的count

library(dplyr)

df %>%
  count(Label, Number, name="Frequency", sort=TRUE)

输出:

 Label Number Frequency
  <chr>  <dbl>     <int>
1 1-5        2         3
2 1-1        0         1
3 1-12       1         1
4 1-5        0         1