从从计数函数得出值的列中计算百分比列

问题描述 投票:0回答:1

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

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

此作品:

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

任何帮助/建议/解释将不胜感激。

r dplyr percentage mutate
1个回答
0
投票

我们可以提取与.$分组的整个列,>

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  
© www.soinside.com 2019 - 2024. All rights reserved.