我正在尝试创建百分比列。
它与下面的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
任何帮助/建议/解释将不胜感激。
我们可以提取与.$
分组的整个列,>
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