Я пытаюсь нарисовать пирамиду населения с привязкой к клиенту, используя 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 или я что-то делаю не так?
Пожалуйста, помогите !!!!