Я построил статическую панель Flexdashboard с 10+ вкладками и несколькими графиками на каждой вкладке.
Я установил переменную в качестве ключа поиска для каждого оцениваемого человека, чтобы связать всю панель инструментов.
Например,
library(flexdashboard)
library(tidyverse)
library(plotly)
library(DT)
library(cowplot)
library(lubridate)
df <- read_csv("Database.csv")
name <- regex(pattern="Smith")
Мне просто нужно поменять имя «Смит» на «Вирк», если я хочу связать оценку для человека по имени Вирк, без необходимости в целомимя. Он также извлекает данные из нескольких других csv, которые могут не иметь полного имени, поэтому лучшим решением на данный момент является фамилия с первой буквой в верхнем регистре. Слава богу, у меня пока нет двух одинаковых имен.
У моих других вкладок / графиков есть общий фильтр, использующий
df_radar <- cccdb %>%
filter(str_detect(Name,name))
У меня более 50+ графиков и таблиц данныхиспользуя эту систему фильтров. Каждый html-файл (каждый оцениваемый отдельный) имеет размер около 6 МБ.
Мне интересно, есть ли более простой способ использовать textInput Shiny для динамического изменения переменных "name" и renderPlot {} на моих графиках и таблицах данныхбез необходимости менять весь код панели инструментов. Например:
library(flexdashboard)
library(tidyverse)
library(plotly)
library(DT)
library(cowplot)
library(lubridate)
library(shiny)
df <- read_csv("Database.csv")
#Replacement of "name" variable
textInput("Name", "name:")
#one of the plot
renderPlot({
name <- regex(pattern = input$Name)
df_radar <- cccdb %>%
filter(str_detect(Name,name) %>%
ggplot(.,
aes(x=Productivity)) +
geom_bar()
df_radar
})
Я смог это сделать. Однако проблема в том, что мне придется повторить это:
name <- regex(pattern = input$Name)
для всех 50+ renderPlots и renderDataTable. Мне было интересно, если есть более простой способ. Спасибо за вашу помощь!