#r #checkbox #shiny #conditional-statements #heatmap
#r #флажок #блестящий #условные операторы #тепловая карта
Вопрос:
Привет всем, я все еще работаю над этой проблемой: вычисленное среднее значение поступает на ось тепловой карты. Я хочу переопределить вычисление, если установлен флажок «переопределить».
Я перепробовал много вещей, и ничего не сработало. Вычисленная оценка равна :
project_gap_score<- reactive({
project_gap_table_prep() %>%
select(rank) %>%
drop_na() %>%
mutate(rank = as.numeric(str_extract(rank, '\d{1}'))) %>%
summarise(score = round(mean(rank)))%>%
mutate(
label = case_when(
score == 1 ~ 'Low',
score == 2 ~ 'Medium',
score == 3 ~ 'Large',
score == 4 ~ 'Very Large'))
поэтому я создал нечто подобное, чтобы заменить это на случай, если флажок был установлен :
project_gap_scoreover<- reactive({
variable() %>%
mutate(
value = case_when(
'Low' ~ score == 1,
'Medium'~ score == 2,
'Large'~ score == 3,
'Very Large'~ score == 4))
})
Это означает, что если человек, выбранный в селекторе выбора «Средний», это оценка 2 и т.д.
Я подумал, что мне может понадобиться обратный вызов для получения ввода флажка, поскольку его нет в реактивном событии тепловой карты. При этом я все еще не могу понять, как переопределить этот ввод оси. моя функция неуместна или полностью неверна?
project_potential_heatmap_prep <- reactive({
hold_gap_label <- project_gap_score()
hold_intensity_label <- project_intensity_score()
dat_out <- tibble(
gap = rep(c(0, 1, 2, 3), 4),
intensity = c(rep(0, 4), rep(1, 4), rep(2, 4), rep(3, 4)),
dat = rep(1, 16),
color = c('#FFC000', rep('#C6E0B4', 5), rep('#92D050', 2), '#C6E0B4', rep('#92D050', 2), '#00B050', rep('#92D050', 2), rep('#00B050', 2))
)
if (!is.na(project_intensity_score()$score) amp;amp; !is.na(project_gap_score()$score)) {
dat_out <- dat_out %>%
mutate(dat = ifelse(gap == hold_gap_label$score - 1 amp; intensity == hold_intensity_label$score - 1, 99, dat))
}
if (!is.na(input$override) {
project_gap_score <- project_gap_scoreover
}
dat_out
})
Заранее спасибо за любые предложения!
Комментарии:
1. Не могли бы вы, пожалуйста, попытаться создать воспроизводимый пример относительно вашей проблемы? Очень сложно помочь, основываясь на некоторых изолированных фрагментах кода.
2. понял, спасибо, это может занять у меня некоторое время, но я опубликую его как можно скорее. Я также обнаружил, что код не является интуитивно понятным, даже несмотря на то, что метки равны 1, 2, 3, 4, выделенные заголовки являются результатом оценки пересечения, которая совершенно иная.