Hello,
I'm developing a shiny app.
With this I want to download data to manipulate it.
In ui.R
# To rename data
textInput("data_name", "", placeholder = "Example : 20190625_Data_Name"),
# To download file
fileInput("data_exp","", multiple = TRUE),
#To launch process
actionButton("import", "Download")
In server.R
UploadData <- reactive({
file1 <- input$data_exp
if(is.null(file1)){return()}
return(read.table(file=file1$datapath))
})
observeEvent(input$import, {
if (is.null(input$data_name) || input$data_name == "") {
sendSweetAlert(
session = session,
title = "Error...",
text = "Nom des données vide",
type = "error"
)
} else {
upload_data(input$nom_data, UploadData())
sendSweetAlert(
session = session,
title = "Done !",
text = "Vos données ont bien été traitées",
type = "success"
)
}
})
My function upload_data(data_name, data_table)
is correct, because without the application I get what I want.
However... it's the opposite when my app run. Actually, I have two kind of error message :
Warning: Error in read.table: first five rows are empty: giving up
79: stop
78: read.table
77: read.csv
76: upload_data [myPath/App/Functions/upload_data.R#20]
72: observeEventHandler [myPath\App/server.R#41]
1: runApp
Or otherwise, read.table have to contain character or string
something like that.
After the size of the files is greater than 5MB
But to explain everything properly, here is the function code
upload_data <- function(nom_data, data_table){
library(data.table)
library(readr)
data_path <- "myPath/Data/"
data_path <- paste0(data_path , nom_data)
dir.create(data_path)
raw_data <- transpose(data_table)
write.csv(raw_data, file = paste0(data_path, "/", nom_data, ".csv"), row.names = FALSE)
tmp.data <- read.csv(paste0(data_path, "/", nom_data, ".csv"))
assign(nom_data, tmp.data, envir = .GlobalEnv)
.GlobalEnv$liste_data <- append(.GlobalEnv$liste_data, toString(nom_data))
}
Thank you in advance for your answers