У меня есть фрейм данных, хранящийся в df
, и я пытаюсь обновить datatable(DT::datatable)
на основе фильтра имен и фильтра диапазона дат в пределах уценки R с блестящей средой выполнения.
Я знаю, что моя проблема заключается в в моем вызове фильтра в моей реактивной функции, но я не уверен, как заставить его работать. Я попытался изменить вызов >=
на %in%
, который отображает таблицу и не выдает сообщение об ошибке «Результат должен иметь длину 7, а не 0», но таблица пуста.
## load in data
df <- read.csv("dxa.csv")
## format date column as date
df$Date.of.test <- lubridate::dmy(df$Date.of.test)
## join first name and last name
df$athlete <- paste(df$First.Name,df$Last.Name, sep = " " )
## rename columns
df <- rename(df, c("X..Fat.Free.Mass" = "FFM.Percentage", "X..Fat.Mass" = "FM.Percentage"))
## filter inputs
inputPanel(
selectInput(inputId = 'name_select',
label = 'Select Athlete',
choices = sort(unique(df$athlete))
),
dateRangeInput(inputId = 'date_select',
label = 'Select Date Range',
start = min(df$Date.of.test),
end = max(df$Date.of.test),
min = min(df$Date.of.test),
max = max(df$Date.of.test),
format = "dd-mm-yyyy")
)
dfr <- reactive({
df %>%
filter(Date.of.test >= input$date_select[1] & Date.of.test <= input$date_range[2] & athlete %in% input$name_select) %>%
select("Date.of.test", "Scale.Weight", "FFM.Percentage", "FM.Percentage","TOTAL.Fat.Mass", "TOTAL.Fat.Free.Mass", "USG") %>%
arrange(Date.of.test)
})
## Data Table
renderDT({
DT::datatable(dfr())
})
## graph 1
renderPlot({
})