根据R中的组创建比例向量

问题描述

我对此有类似的问题... Relative frequencies / proportions with dplyr,但它对我不起作用。

我只是想在新的一列中列出每个年龄段相对于该年所有年龄段总数的比例。

这是我的示例数据...

> structure(list(Year = c("2012","2016","2013","2015","2012","2018","2011","2014","2010","2017","2014"),Age = structure(c(6L,8L,2L,11L,7L,3L,6L,9L,5L,1L,6L),.Label = c("0","1","2","3","4","5","6","7","8","9","10"),class = "factor"),n = c(3,6,3,11,1,2,8,4),id = c("Adult","Adult","Adult")),row.names = c(NA,-15L),class = "data.frame")

   Year Age  n    id
1  2012   5  3 Adult
2  2016   7  6 Adult
3  2013   1  3 Adult
4  2015   1 11 Adult
5  2012  10  1 Adult
6  2018   7  3 Adult
7  2013   6  2 Adult
8  2011   2  3 Adult
9  2016   5  8 Adult
10 2018   8  3 Adult
11 2011   5  2 Adult
12 2014   1  1 Adult
13 2010   4  3 Adult
14 2017   0  8 Adult
15 2014   5  4 Adult

希望的结果是...

   Year Age  n    id prop
1  2012   5  3 Adult 0.75
2  2016   7  6 Adult 0.43
3  2013   1  3 Adult 0.60
4  2015   1 11 Adult 1.00
5  2012  10  1 Adult 0.25
6  2018   7  3 Adult 0.50
7  2013   6  2 Adult 0.40
8  2011   2  3 Adult 0.60
9  2016   5  8 Adult 0.57
10 2018   8  3 Adult 0.50
11 2011   5  2 Adult 0.40
12 2014   1  1 Adult 0.20
13 2010   4  3 Adult 1.00
14 2017   0  8 Adult 1.00
15 2014   5  4 Adult 0.80

我已经尝试过多种方法包括这种方法...

df.prop <- df %>%
  group_by(Age,Year) %>%
  mutate(prop = n / sum(n))

   Year  Age       n id     prop
   <chr> <fct> <dbl> <chr> <dbl>
 1 2012  5         3 Adult     1
 2 2016  7         6 Adult     1
 3 2013  1         3 Adult     1
 4 2015  1        11 Adult     1
 5 2012  10        1 Adult     1
 6 2018  7         3 Adult     1
 7 2013  6         2 Adult     1
 8 2011  2         3 Adult     1
 9 2016  5         8 Adult     1
10 2018  8         3 Adult     1
11 2011  5         2 Adult     1
12 2014  1         1 Adult     1
13 2010  4         3 Adult     1
14 2017  0         8 Adult     1
15 2014  5         4 Adult     1

我也尝试过...



df %>%
  group_by(Year,Age) %>%
  summarise(n = n()) %>%
  mutate(prop = n / sum(n))

  Age   Year      n
   <fct> <chr> <int>
 1 0     2017      1
 2 1     2013      1
 3 1     2014      1
 4 1     2015      1
 5 2     2011      1
 6 4     2010      1
 7 5     2011      1
 8 5     2012      1
 9 5     2014      1
10 5     2016      1
11 6     2013      1
12 7     2016      1
13 7     2018      1
14 8     2018      1
15 10    2012      1

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...