从值从计数函数派生的列计算百分比列

Calculating a percentage column from a column where the values are derived from the count function

我正在尝试创建百分比列。

它与下面的 my_data1 完美兼容,但与 my_data3 不兼容(两者之间的唯一区别是 my_data3 中的值列是整数。但是问题仍然存在,即使如果我将变量更改为数字)。

有效:

my_data1 <- data.frame(Colour = c("Blue", "Red", "Green"),
                 Value = c(2, 3, 1))

my_data1 %>% 
  mutate(Percentage = Value/sum(Value)*100)



  Colour Value Percentage
1   Blue     2   33.33333
2    Red     3   50.00000
3  Green     1   16.66667

但这行不通:

my_data3 <- data.frame(Colour = c("Blue", "Blue", "Green", "Red", "Red", "Red"))

my_data3 <- my_data3 %>% 
  group_by(Colour) %>% 
  count(name = "Value") 

my_data3 %>% 
  mutate(Percent = Value/sum(Value)*100)


  Colour Value Percent
  <fct>  <int>   <dbl>
1 Red        3     100
2 Blue       2     100
3 Green      1     100

如有任何帮助/建议/解释,我们将不胜感激。

我们可以提取整列,因为它是用 .$

分组的
my_data3 %>% 
   mutate(Percent = Value/sum(.$Value)*100)
# A tibble: 3 x 3
# Groups:   Colour [3]
#  Colour Value Percent
#  <fct>  <int>   <dbl>
#1 Blue       2    33.3
#2 Green      1    16.7
#3 Red        3    50