У меня есть блестящее приложение , которое прекрасно работает в rstudio локально, но не на shinyapps.io
. Я обратился к руководству Rstudio по этому вопросу, и ни одна из очевидных проблем не кажется присутствующей (например, абсолютные пути). Кажется, проблема в том, что приложение не находит данные; Я проверил и перепроверил и загружаю данные в shinyapps.io
с кодом. Ошибка в файле журнала:
Предупреждение: ошибка в is.data.frame: объект 'dat' не найден.
Это файл server.R :
library(ggplot2)
layerFit <- function(fit){
geom_line(data = fit,
aes(x, y), color="red",size = 1, linetype = 2)
}
dat <- read.csv("data.csv", stringsAsFactors = F, na.strings = "NA")
dat$date <- as.Date(paste0(dat$month, "-", dat$day), format = "%m-%d")
dat$time <- 1:nrow(dat)
server = function(input, output) {
expfit <- reactive({
dat2 <- dat[!is.na(dat[[input$variable]]),]
mod <- lm(as.formula(paste("log(",input$variable, ") ~ time")), dat2)
expfit <- data.frame(x = dat2$date,
y = exp(fitted(mod)))
return(expfit)
})
output$data <- renderPlot({
fit <- expfit()
p <- ggplot(dat, aes(y = !!input$variable, x= date))+
geom_point() +geom_line()+
if(input$toggleExpFit) p = p + layerFit(fit)
p
})
}
А это файл ui.R:
ui <- fluidPage(
varSelectInput("variable", "Variable:", dat[,c("x","y")]),
checkboxInput("toggleExpFit", label = "Exponential model", value = FALSE),
plotOutput("data")
)
Вы можете создать поддельные данные, такие как файл data.csv:
dat <- data.frame(day 1:20, month = 1, x = rnorm(20), y = rnorm(20))
Спасибо за вашу помощь.