Here is a possibility
---
title: "Untitled"
author: "Author"
date: "10 avril 2019"
output: html_document
runtime : shiny
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, message=FALSE, warning = FALSE)
if (!require(kableExtra)) {
install.packages("kableExtra", repos = "https://cloud.r-project.org")
library(kableExtra)
}
```
```{r, echo=FALSE}
edit_data <- function(data, lignes_error) {
shinyApp(
ui = fluidPage(
fluidRow(
column(3,
selectInput("ligne", label = "Choix de la ligne :",
choices = c(lignes_error))),
column(3,
selectInput("variable", label = "Choix de la variable date a modifier :",
choices = c("dateappel","depart"))),
column(3,
dateInput("nouvelledate", label = "Nouvelle date"))
),
actionButton("submit", "Submit"),
tableOutput("data"),
actionButton("reset", "Reset")
),
server = function(input, output, session) {
data_rx <- reactiveVal(data)
observeEvent(input$reset, {
data_rx(data)
})
observeEvent(input$submit, {
df <- data_rx()
df[input$ligne, input$variable] <- as.Date(input$nouvelledate)
data_rx(df)
})
output$data <- function() {
knitr::kable(data_rx(), "html") %>%
kable_styling("striped")
}
}
)
}
```
```{r}
data <- data.frame(
dateappel = c("2018-02-03","2018-02-05", "2018-02-15", "2018-07-04", "2018-07-10"),
depart = c("2018-02-02", "2018-02-05", "2018-02-15", "2018-07-03", "2018-07-10")
)
data$dateappel <- as.Date(data$dateappel)
data$depart <- as.Date(data$depart)
lignes_error <- which(data$depart < data$dateappel & !is.na(data$depart) & !is.na(data$dateappel))
do_it = length(lignes_error) > 0
edit_data(data, lignes_error)
```