在R中汇总数据并添加不同的变异

在R中汇总数据并添加不同的变异,r,dataframe,mutate,summary,R,Dataframe,Mutate,Summary,在数据清理之后,我想最后总结一下我的数据 以下是我的数据结构: structure(list(ID = structure(c(1L, 3L, 4L, 2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L), .Label = c("01002", "01004", "01005", "01006", "01009"

在数据清理之后,我想最后总结一下我的数据

以下是我的数据结构:

structure(list(ID = structure(c(1L, 3L, 4L, 2L, 2L, 3L, 3L, 3L, 
3L, 4L, 4L, 4L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L), .Label = c("01002", 
"01004", "01005", "01006", "01009", "01011"), class = "factor"), 
    date = structure(c(17645, 17645, 17645, 17646, 17646, 17646, 
    17646, 17646, 17646, 17646, 17648, 17646, 17648, 17646, 17648, 
    17646, 17646, 17646, 17649, 17646), class = "Date"), category = structure(c(1L, 
    1L, 1L, 2L, 4L, 7L, 3L, 3L, 1L, 6L, 6L, 6L, 7L, 7L, 7L, 6L, 
    2L, 5L, 3L, 3L), .Label = c("A", "B", "C", "D", "F", "G", 
    "Q"), class = "factor"), level = c(3000, 3000, 1000, 1000, 
    1000, 9999, 9999, 9999, 9999, 9999, 9999, 9999, 8000, 9999, 
    9999, 9999, 300, 300, 300, 9999)), class = "data.frame", row.names = c(NA, 
-20L))
以下是我目前掌握的代码:

dataDF %>% 
  dplyr::group_by(category) %>% 
  dplyr::summarize(n = n()) %>%
  dplyr::mutate(percentage = (prop.table(n))*100) %>%
  arrange(desc(n))
结果如下:

  category     n percentage
  <fct>    <int>      <dbl>
1 A            4         20
2 C            4         20
3 G            4         20
4 Q            4         20
5 B            2         10
6 D            1          5
7 F            1          5
n类百分比
1 A 4 20
2 C 4 20
3 G 4 20
4问4 20
5B210
6 D 1 5
7楼15楼
现在我想添加一个新列,其中包含日期的聚合

我需要为每个类别添加每个ID的平均计数日期

下面是数据应该是什么样子(随机数,不是计算出来的)

n类每个ID报告的平均天数百分比
1 A 4 20 2
2 C 4 20 3.4
3 G 4 20 4
4问4201
5B2103.5
6 D 1 5 2
7 F 1 5 1.1
我不知道如何才能做到这一点。我尝试添加另一个mutate(),计算每个ID的平均天数,并将其(使用另一个group by)添加到数据表中


谢谢你的帮助

您想要每个类别每个ID的平均唯一日期吗

您只需分组并总结两次:

require(dplyr)
数据分布%>%
分组依据(ID,类别)%>%
摘要(不同日期=n_不同(日期))%>%
组别(类别)%>%
总结(平均值(偏差))
#类别`平均值(偏差)`
#                       
#1 A 1.33
#2 B 1
#3 C 1
#4d1
#5f1
#6G1
#7问题1
如果您想将这些值加入到您现有的DF中,只需这样做
left\u join(your.existing.df,this.new.df,by=“category”)

是的,我想要每个类别每个ID的平均唯一日期。我要试试看!谢谢。
  category     n percentage mean_reported_days_per_ID
  <fct>    <int>      <dbl>    <int> 
1 A            4         20     2
2 C            4         20     3.4
3 G            4         20     4
4 Q            4         20     1
5 B            2         10     3.5
6 D            1          5     2
7 F            1          5     1.1