Попробуйте использовать group_by и подвести итог с помощью highlight_key () - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь нарисовать пирамиду населения с привязкой к клиенту, используя highlight_key (), filter_slider () и пару add_bars в сюжетно. Моя цель - дать возможность динамически выбирать возрастной диапазон. Когда я показываю полоски без filter_slider со следующим кодом:

age_select <- highlight_key(COMPLETE, ~age)

pmB <- plot_ly(age_select) %>% group_by(nsex, age) %>% summarise(n=-sum(!is.na(unique(code)))) %>% filter(nsex == 1) %>% add_bars(x=~n, y = ~age, orientation="h", name = "Male") 

pfB <- plot_ly(age_select) %>% group_by(nsex, age) %>% summarise(n=sum(!is.na(unique(code)))) %>% filter(nsex == 2) %>% add_bars(x=~n, y = ~age, orientation="h", name = "Female") 

finalPPC <- subplot(pmB,pfB, shareX=TRUE, shareY=TRUE, margin=0) 

, где «code» означает уникальную идентификацию каждого человека, а «nsex» - 1 для мужчины и 2 для женщины. Мне нужно сгруппировать, потому что в наборе данных есть дубликаты, которые нельзя удалить заранее (например, в каких городах жил каждый человек -> тот же человек, разные строки, разные города). Тем не менее, с предыдущим кодом график показывает довольно хорошо. Однако, когда я пытаюсь включить ползунок со следующим кодом:

age_select <- highlight_key(COMPLETE)

fs_age <- filter_slider("ages", "Age", age_select, ~age)

.... #same code as before

bscols(fs_age, finalPPC)

Сюжет сводит с ума, и summarize () добавляет все строки в каждой группе, включая дубликаты. Похоже, что unique () в этом случае не работает. Странно.

Это ошибка Plotly или я что-то делаю не так?

Пожалуйста, помогите !!!!

...