diff --git a/Nitrogen-CIT/app.R b/Nitrogen-CIT/app.R index 26ef0e7..bb60f53 100644 --- a/Nitrogen-CIT/app.R +++ b/Nitrogen-CIT/app.R @@ -32,34 +32,66 @@ ui <- fluidPage( server <- function(input, output) { dades<-reactiveValues() dades$taula<-NULL + dades$type<-NULL ## Listado ---- observe({ req(input$file) - df.list<-lapply(excel_sheets(input$file$datapath), read_xlsx, path=input$file$datapath, range="B1:K31", col_type="text") - names(df.list)<-excel_sheets(input$file$datapath) - name.row<-seq(from=1, to=nrow(df.list[[1]]), by=3) - date.row<-seq(from=2, to=nrow(df.list[[1]]), by=3) - desc.row<-seq(from=3, to=nrow(df.list[[1]]), by=3) - for (i in 1:length(df.list)){ - df.list[[i]]<-data.frame( - Tanque=gsub("-[0-9]* #[0-9]*$","",names(df.list)[i]), - Rack=gsub("^[A-Z]-| #[0-9]*$","",names(df.list)[i]), - Caja=names(df.list)[i], - Fila=rep(LETTERS[1:10], 10), - Columna=factor(as.character(rep(1:10, each=10)),levels=as.character(1:10)), - Nombre=unlist(df.list[[i]][name.row,]), - Fecha=unlist(df.list[[i]][date.row,]), - Descripción=unlist(df.list[[i]][desc.row,]) - ) + if(read_xlsx(input$file$datapath, sheet = 1, range="B1:B1", col_names = F) == "1"){dades$type<-"ICO"}else{dades$type<-"Virus"} + + if(dades$type == "ICO"){ + df.list<-lapply(excel_sheets(input$file$datapath), read_xlsx, + path=input$file$datapath, range="B2:K31", col_type="text", col_names=F) + names(df.list)<-excel_sheets(input$file$datapath) + name.row<-seq(from=1, to=nrow(df.list[[1]]), by=3) + date.row<-seq(from=2, to=nrow(df.list[[1]]), by=3) + desc.row<-seq(from=3, to=nrow(df.list[[1]]), by=3) + for (i in 1:length(df.list)){ + df.list[[i]]<-data.frame( + Tanque=gsub("-[0-9]* #[0-9]*$","",names(df.list)[i]), + Rack=gsub("^[A-Z]-| #[0-9]*$","",names(df.list)[i]), + Caja=names(df.list)[i], + Fila=rep(LETTERS[1:10], 10), + Columna=factor(as.character(rep(1:10, each=10)),levels=as.character(1:10)), + Nombre=unlist(df.list[[i]][name.row,]), + Fecha=unlist(df.list[[i]][date.row,]), + Descripción=unlist(df.list[[i]][desc.row,]) + ) + } + df<-do.call(rbind, df.list) + df[grepl("^[0-9]*$", df$Fecha),"Fecha"]<-as.character(as.Date(as.numeric(df[grepl("^[0-9]*$", df$Fecha),"Fecha"]), origin = "1899-12-30")) + for (i in c("Tanque", "Rack","Caja","Fila")){ + df[,i]<-factor(df[,i]) + } + dades$taula<-df } - df<-do.call(rbind, df.list) - df[grepl("^[0-9]*$", df$Fecha),"Fecha"]<-as.character(as.Date(as.numeric(df[grepl("^[0-9]*$", df$Fecha),"Fecha"]), origin = "1899-12-30")) - for (i in c("Tanque", "Rack","Caja","Fila")){ - df[,i]<-factor(df[,i]) + if(dades$type == "Virus"){ + df.list<-lapply(excel_sheets(input$file$datapath), read_xlsx, + path=input$file$datapath, range="A1:J30", col_type="text", col_names=F) + names(df.list)<-excel_sheets(input$file$datapath) + name.row<-seq(from=1, to=nrow(df.list[[1]]), by=3) + date.row<-seq(from=2, to=nrow(df.list[[1]]), by=3) + desc.row<-seq(from=3, to=nrow(df.list[[1]]), by=3) + for (i in 1:length(df.list)){ + df.list[[i]]<-data.frame( + Tanque=gsub("-[0-9]* #[0-9]*$","",names(df.list)[i]), + Rack=gsub("^[A-Z]-| #[0-9]*$","",names(df.list)[i]), + Caja=names(df.list)[i], + `Posición`=factor(as.character(1:100),levels=as.character(1:100)), + Cell.Line=unlist(df.list[[i]][name.row,]), + `Descongelación`=unlist(df.list[[i]][date.row,]), + Passage=unlist(df.list[[i]][desc.row,]) + ) + } + df<-do.call(rbind, df.list) + df[grepl("^[0-9]*$", df$Passage),"Passage"]<-as.character(as.Date(as.numeric(df[grepl("^[0-9]*$", df$Passage),"Passage"]), origin = "1899-12-30")) + for (i in c("Tanque", "Rack","Caja")){ + df[,i]<-factor(df[,i]) + } + dades$taula<-df } - dades$taula<-df + }) output$DT <- renderDT({ @@ -76,17 +108,29 @@ server <- function(input, output) { output$DT_caja <- renderTable({ req(dades$taula) - caja_l<-dades$taula[dades$taula$Caja == input$caja,] - caja_l$Nombre[is.na(caja_l$Nombre)]<-"" - caja_l$Fecha[is.na(caja_l$Fecha)]<-"" - caja_l$Descripción[is.na(caja_l$Descripción)]<-"" - caja<-as.data.frame(matrix(data= paste(caja_l$Nombre, caja_l$Fecha, caja_l$Descripción, sep="
"), + if(dades$type == "ICO"){ + caja_l<-dades$taula[dades$taula$Caja == input$caja,] + caja_l$Nombre[is.na(caja_l$Nombre)]<-"" + caja_l$Fecha[is.na(caja_l$Fecha)]<-"" + caja_l$Descripción[is.na(caja_l$Descripción)]<-"" + caja<-as.data.frame(matrix(data= paste(caja_l$Nombre, caja_l$Fecha, caja_l$Descripción, sep="
"), ncol = 10, nrow=10)) - colnames(caja)<-as.character(1:10) - rownames(caja)<-LETTERS[1:10] + colnames(caja)<-as.character(1:10) + rownames(caja)<-LETTERS[1:10] + } + if(dades$type == "Virus"){ + caja_l<-dades$taula[dades$taula$Caja == input$caja,] + caja_l$Cell.Line[is.na(caja_l$Cell.Line)]<-"" + caja_l$`Descongelación`[is.na(caja_l$`Descongelación`)]<-"" + caja_l$Passage[is.na(caja_l$Passage)]<-"" + caja<-as.data.frame(matrix(data= paste(caja_l$Cell.Line, caja_l$`Descongelación`, caja_l$Passage, sep="
"), + ncol = 10, nrow=10)) + colnames(caja)<-NULL + rownames(caja)<-NULL + } caja - }, rownames = TRUE, sanitize.text.function=identity, bordered = TRUE) + }, rownames = TRUE, sanitize.text.function=identity, bordered = TRUE) }