列中不同范围的值被视为不同的桶并创建饼图 R

different range of values in a column to be treated as different buckets and create pie chart R

在数据框中,我有一列值(价格)从 1 到 500。我需要创建一个饼图,其中包含 3 个桶,1-10、10-50,大于 100。 它应该显示对它的贡献百分比。 如何在 R 中执行此操作?

对你有帮助吗:

library(tidyverse)

df <- as_tibble(seq(1,500)) %>% rename(price=value)

所以数据看起来像(它很愚蠢,但它是一个例子,使用你的数据):

# A tibble: 500 x 1
    price
    <int>
1     1
2     2
3     3
4     4
5     5
6     6
7     7
8     8
9     9
10    10
# ... with 490 more rows

比我们做的还要多:

df %>%
  mutate(bucket=ifelse(price<=10, "1-10", 
                       ifelse(price>10 & price<=50, "11-50", "50<"))) %>% 
  count(bucket) %>%
  mutate(percent=n/nrow(df)*100) %>%
  ggplot(aes(x="", y=percent, fill=bucket)) +
  geom_bar(width = 1, stat = "identity") +
  coord_polar("y", start=0)

mutate 我们定义桶和百分比。使用 ifelse 我们简单地说:if price = x, than mark it as y, else do ...

这是生成的图表: