hi高手,第2次发帖相同问题,希望有高手帮忙见下代码部分:textInput中输入file路径,怎么传到 filename<-dir(input$path)?
library(ggplot2)
library(shinydashboard)
library(shiny)
library(dplyr)
library(stringr)
library(DT)
library(readr)
dashboardPage(skin="yellow",
dashboardHeader(title="SPC Control Item" ),
dashboardSidebar(
sidebarMenu(
menuItem("Data Import",tabName = "upload",icon=icon("table"),
menuItem("File Path",tabName="Filepath",icon=icon("chain"))),
menuItem("Data Display",tabName="Data",icon=icon("table")),
menuItem("Chart",tabName="chart",icon=icon("line-chart"))
)
),
dashboardBody(
tabItems(
tabItem(tabName = "Filepath",
fluidRow(
box(title="",width=12,solidHeader=TRUE,status="warning",textInput("path","Please input file path"),
verbatimTextOutput("textest"),DT::dataTableOutput("spc_file")),
column(width=12,
actionButton("get","Get",icon=icon("car"))))
)
)
)
)
#options(shiny.maxRequestSize=30*1024^2)
function(input,output,session){
spcfile<-eventReactive(input$get,{
filename<-dir(input$path)
filepath<-paste(input$path,filename,sep="/")
spc<-read.csv(filepath[1],header=FALSE,blank.lines.skip=FALSE,fill=TRUE,skip=1,col.names = (1:26),stringsAsFactors=FALSE)
#循环添加:
for(i in 2:length(filepath)){
spc01<-read.csv(filepath,header=FALSE,blank.lines.skip = FALSE,fill=TRUE,skip=1,col.names = (1:26),stringsAsFactors=FALSE)
spc<-rbind(spc,spc01)
}
names(spc)<-c("CUSTOMER_LOT_ID","LOT","PRODUCT","FAB","STATION","CONTROLITEM_ID","MEASURE_TIME","OPERATOR","SPECGROUP_ID",
"USL","SL","LSL","CONTROLGROUP_ID","X1","X2","X3","X4","X5","X6","X7","X8","X9","X10","X11","X12","X13")
spc%>%filter(is.na(X1)==FALSE)->spc
spc<-spc[,-26]
#更换类型:
#as.numeric(spc$LSL)->spc$LSL
# as.numeric(spc$USL)->spc$USL
# as.numeric(spc$SL)->spc$SL
# 样本数更换:
spc$X3[str_count(spc$X3,'[0-9]')==1]<-NA
spc$X6[str_count(spc$X6,'[0-9]')==1]<-NA
spc$X10[str_count(spc$X10,'[0-9]')==1]<-NA
# 将SL & USL & LSL赋值给NA:
for (t in 1:nrow(spc)){
for(i in 14:ncol(spc)){
if(is.na(spc[t,]$SL)==TRUE & is.na(spc[t,i])==TRUE){
spc[t,i]<-spc[t,]$USL-0.1}
else if(is.na(spc[t,]$SL)==FALSE & is.na(spc[t,i])==TRUE){
spc[t,i]<-spc[t,]$SL
}
}
}
# end
})
output$textest<-renderText({input$path})
output$spc_file<-DT::renderDataTable({
DT::datatable(spcfile(),rownames = F)
})
}