Вот некоторые данные (называемые носителем):
Age Term Band Gender Class Premium
4568 31-35 30 Band 3 female PNS 26
3033 18-30 20 Band 1 female SPNS 285
1035 18-30 20 Band 3 male SPNS 576
145 18-30 20 Band 1 male PPNS 168
2626 18-30 10 Band 3 female SNS 47
4617 31-35 10 Band 1 female SPNS 187
2246 18-30 30 Band 2 male PNS 723
3677 18-30 30 Band 1 male PSM 569
259 18-30 30 Band 4 female PPNS 675
397 18-30 15 Band 4 male PPNS 91
1485 18-30 10 Band 4 female SPNS 204
3459 18-30 10 Band 1 male SPNS 467
8805 46-50 20 Band 2 female SPNS 365
1316 18-30 20 Band 2 female PNS 311
11379 56-60 20 Band 1 male SPNS 370
7284 41-45 15 Band 1 female SSM 590
4360 31-35 10 Band 4 male SNS 109
1318 18-30 20 Band 2 female SNS 191
6131 36-40 15 Band 1 female PSM 722
4501 31-35 20 Band 4 male PPNS 704
8656 46-50 10 Band 2 male SNS 587
1045 18-30 20 Band 4 male PPNS 398
4341 31-35 10 Band 2 female SPNS 419
2623 18-30 10 Band 3 female PPNS 729
9668 51-55 20 Band 2 female PNS 689
3532 18-30 15 Band 1 male SNS 763
4363 31-35 10 Band 4 female PPNS 567
260 18-30 30 Band 4 female PNS 401
8086 46-50 10 Band 2 female SNS 202
3385 18-30 30 Band 1 male PPNS 292
169 18-30 20 Band 3 male PPNS 185
2452 18-30 20 Band 1 male SNS 665
5362 36-40 20 Band 3 female SNS 772
1020 18-30 20 Band 1 female SSM 616
5643 36-40 20 Band 3 male SPNS 627
13544 61-65 10 Band 1 female PNS 612
6359 36-40 10 Band 2 female PSM 508
6295 36-40 30 Band 3 female PPNS 597
5564 36-40 15 Band 2 female PNS 356
2603 18-30 10 Band 1 female PSM 740
2774 18-30 20 Band 4 male PNS 425
4405 31-35 15 Band 2 male PPNS 18
5003 31-35 15 Band 3 female PSM 168
3567 18-30 15 Band 4 male SPNS 499
5268 36-40 15 Band 1 female SSM 636
6772 41-45 20 Band 1 male SNS 262
5866 36-40 15 Band 3 female SNS 438
5337 36-40 20 Band 1 female SPNS 384
3471 18-30 10 Band 2 male SPNS 429
5620 36-40 20 Band 1 male SNS 527
, и это мой код dplyr / ggplot:
carrier%>%
group_by(Age)%>%
summarise(high=length(which(Premium>300)),low=length(which(Premium<300)))%>%
gather(key,value,-Age)%>%
ggplot(aes_string("Age","value",fill="key"))+
geom_bar(stat="identity",position="stack",na.rm=TRUE)+
geom_text(data=. %>% filter(key=="high"),aes(label=sum(value)))
, и вывод, который я здесь получаю: iне хочу этого
Таким образом, 35 является суммой всех высоких значений для всех возрастных групп.Для меня не имеет смысла выводить это для каждого столбца.Я хотел бы вывести 35 только один раз, но я не могу понять, как я могу это сделать.Я должен также упомянуть, что этот код находится в приложении Shiny, где вводом является «оператор».До сих пор я пробовал:
carrier%>%
group_by(Age)%>%
summarise(high=length(which(Premium>300)),low=length(which(Premium<300)))%>%
gather(key,value,-Age)%>%
ggplot(aes_string("Age","value",fill="key"))+
geom_bar(stat="identity",position="stack",na.rm=TRUE)+
geom_text(data=. %>% select(filter(key=="high"),value),aes(label=sum(value)))
Ошибка в ключе == "высокий": сравнение (1) возможно только для атомарных и списочных типов
и
carrier%>%
group_by(Age)%>%
summarise(high=length(which(Premium>300)),low=length(which(Premium<300)))%>%
gather(key,value,-Age)%>%
ggplot(aes_string("Age","value",fill="key"))+
geom_bar(stat="identity",position="stack",na.rm=TRUE)+
geom_text(data=. %>% filter(key=="high") %>% select(value),aes(label=sum(value)))
Ошибка в FUN (X [[i]], ...): объект 'Age' не найден
, но оба возвращают ошибку,Я все еще новичок в ggplot / dplyr, поэтому я не совсем уверен, что здесь происходит.Я был бы признателен, если бы кто-то указал мне правильное направление.