在数据框中,我有一个列,其值(价格)从1到500.我需要创建一个包含3个桶,1-10,10-50,大于100的饼图。 它应该显示它的百分比贡献。 如何在R?中做到这一点?
答案 0 :(得分:0)
这对你有帮助:
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
将其标记为y,else
执行...
结果图表: