В моем блестящем приложении я загружаю файлы разных типов, которые я хочу обработать, и отображаю результат в разных разделах вывода.Но второй вывод зависит от результата first output .Во втором выводе я фильтрую первую таблицу, используя имена столбцов.Теперь у меня проблема в том, что у некоторых файлов, которые я загружаю, нет столбцов, которые я использую для поднабора для второго вывода, они были перемещены в первую строку, что означает, что после загрузки файла с другими столбцами я должен заменить существующие столбцы.в первом ряду они фильтруют результаты для второго вывода.Вот мое приложение:
library(shiny)
library(DT)
ui<- shinyUI(fluidPage(
titlePanel("Uploading Files"),
sidebarLayout(
sidebarPanel(
fileInput('file1', 'Choose CSV File',
accept=c('text/csv',
'text/comma-separated-values,text/plain',
'.csv')),
# radio button to show either row or replaced column table
radioButtons("radio", label = h3("Replace columns"),
choices = list("Raw table" = 1, "change columns" = 2),
selected = 1)
),
mainPanel(
DT::dataTableOutput('contents'),
DT::dataTableOutput('filtered')
)
)
)
)
server <- function(input, output, session){
myData <- reactive({
inFile <- input$file1
if (is.null(inFile)) return(NULL)
data <- read.csv(inFile$datapath, header = TRUE)
data
})
output$contents <- DT::renderDataTable({
DT::datatable(myData())
})
#Replace columns reactive event
replaceColumns <- eventReactive(input$radio,{
#Change row to column and delete first row
colnames(myData()) <-myData()[1,]
df = myData()[-1, ]
df
})
data2<- reactive({
# Select columns of the dataframe
df1 <- select(myData(),mpg,cyl,wt)
df1
})
#Output based on either raw or replaced column table
output$filtered <- DT::renderDataTable({
DT::datatable(data2())
})
}
shinyApp(ui,server)
Как использовать переключатель или если есть другой лучший способ, чтобы, когда я загружаю файл и вижу, что он имеет правильные столбцы, он автоматически отображается в первом выводе, икогда я нажимаю необработанную таблицу В переключателе она переходит к фильтрации и выдает отфильтрованный вывод , и если загруженный файл не имеет правильных столбцов, я нажимаю изменить столбцы , чтобызаменить столбцы первой строкой таблицы, затем отфильтровать и показать отфильтрованный вывод?
Я хочу, чтобы мое приложение работало так: когда я загружаю файл, оно отображается, и если файл имеет правильные столбцы, тоЯ нажимаю raw table на переключателе, который теперь переходит к фильтрации и отображает отфильтрованный вывод во втором выводе, но если я вижу, что загруженный файл содержит неправильные столбцы, я нажимаю c изменить столбцы впереключатель, который заменит столбцы в первой строке, а затем перейдет к отфильтрованным результатам во втором выводе.Я просто имею в виду.Я хочу, чтобы второй выход зависел от того, что я выбрал для переключателя.