Как показать последнюю запись даты из реактивного фрейма данных в блестящем R - PullRequest
1 голос
/ 04 октября 2019

У меня есть блестящее приложение, которое я хочу показать где-нибудь в пользовательском интерфейсе дату последней записи данных, добавленной в электронную таблицу. Я уверен, что это очень просто, но я не могу понять это. Буду признателен, если кто-нибудь укажет мне правильное направление.

Пример данных

df<-structure(list(`AQS Code` = c(340071001, 340170006, 340010006, 
340070002, 340273001, 340150002, 340290006, 340410007, 340190001, 
340030006, 340110007, 340250005, 340130003, 340315001, 340210005, 
340230011, 340219991, 340071001, 340170006, 340010006), Latitude = c("39.684249999999999", 
"40.670250000000003", "39.464872", "39.934446000000001", "40.787627999999998", 
"39.800339000000001", "40.064830000000001", "40.924579999999999", 
"40.515262", "40.870435999999998", "39.422272999999997", "40.277647000000002", 
"40.720989000000003", "41.058616999999998", "40.283092000000003", 
"40.462181999999999", "40.3125", "39.684249999999999", "40.670250000000003", 
"39.464872"), State = c("NJ", "NJ", "NJ", "NJ", "NJ", "NJ", "NJ", 
"NJ", "NJ", "NJ", "NJ", "NJ", "NJ", "NJ", "NJ", "NJ", "NJ", "NJ", 
"NJ", "NJ"), `Site Name` = c("Ancora State Hospital", "Bayonne", 
"Brigantine", "Camden Spruce St", "Chester", "Clarksboro", "Colliers Mills", 
"Columbia", "Flemington", "Leonia", "Millville", "Monmouth University", 
"Newark Firehouse", "Ramapo", "Rider University", "Rutgers University", 
"Washington Crossing", "Ancora State Hospital", "Bayonne", "Brigantine"
), `Elev (m)` = c("33.0", "3.0", "5.0", "4.0", "278.0", "12.0", 
"41.0", "146.0", "45.0", "1.0", "22.0", "8.0", "27.0", "307.0", 
"30.0", "19.0", "61.0", "33.0", "3.0", "5.0"), County = c("Camden, NJ", 
"Hudson, NJ", "Atlantic, NJ", "Camden, NJ", "Morris, NJ", "Gloucester, NJ", 
"Ocean, NJ", "Warren, NJ", "Hunterdon, NJ", "Bergen, NJ", "Cumberland, NJ", 
"Monmouth, NJ", "Essex, NJ", "Passaic, NJ", "Mercer, NJ", "Middlesex, NJ", 
"Mercer, NJ", "Camden, NJ", "Hudson, NJ", "Atlantic, NJ"), Date = structure(c(17956, 
17956, 17956, 17956, 17956, 17956, 17956, 17956, 17956, 17956, 
17956, 17956, 17956, 17956, 17956, 17956, 17956, 17957, 17957, 
17957), class = "Date"), AQI_value = c(36, 30, 36, 32, 34, 30, 
40, 26, 27, 31, 38, 44, 28, 35, 36, 35, 35, 31, 34, 34)), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -20L))

Код

    library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(textOutput("test"))
)

server <- function(input, output) { 

  df_reac<-reactive({
    df
  })

  output$test<-renderText(max(df_reac()$Date,na.rm = T))
  }

shinyApp(ui, server)

Он продолжает давать мне странное число, а не максимальную дату ... хотя я не уверен, почему.

1 Ответ

1 голос
/ 04 октября 2019

Возможно, что класс Date (можно проверить с помощью output$test<-renderText(class(max(df_reac()$Date,na.rm = TRUE))))

будет приведен в режим целочисленного хранения. Мы можем преобразовать в character, и он должен правильно напечатать

output$test<-renderText(as.character(max(df_reac()$Date,na.rm = TRUE)))

-output

enter image description here

...