Tôi đang thử nghiệm với Shiny và tôi thích nó. Tôi đã xây dựng một ứng dụng nhỏ nơi học sinh tải lên một tệp csv và sau đó chọn một biến phụ thuộc và các biến độc lập và sau đó R tính toán hồi quy tuyến tính. Nó hoạt động tốt. Tôi có nó được tải lên tại địa chỉ:Sáng bóng: Chỉ hiển thị các nút sau khi tệp đã được tải lên
http://carlosq.shinyapps.io/Regresion
[Bạn có thể sử dụng để kiểm tra this file nó nếu bạn muốn. "Bia" là biến phụ thuộc và phần còn lại của các biến ngoại trừ "id" là độc lập]
Dưới đây là server.R:
# server.R
library(shiny)
shinyServer(function(input, output) {
filedata <- reactive({
infile <- input$file1
if (is.null(infile)){
return(NULL)
}
read.csv(infile$datapath)
})
output$dependent <- renderUI({
df <- filedata()
if (is.null(df)) return(NULL)
items=names(df)
names(items)=items
selectInput("dependent","Select ONE variable as dependent variable from:",items)
})
output$independents <- renderUI({
df <- filedata()
if (is.null(df)) return(NULL)
items=names(df)
names(items)=items
selectInput("independents","Select ONE or MANY independent variables from:",items,multiple=TRUE)
})
output$contents <- renderPrint({
input$action
isolate({
df <- filedata()
if (is.null(df)) return(NULL)
fmla <- as.formula(paste(input$dependent," ~ ",paste(input$independents,collapse="+")))
summary(lm(fmla,data=df))
})
})
})
Và đây là ui.R:
# ui.R
library(shiny)
shinyUI(fluidPage(
titlePanel("Multiple Linear Regression"),
sidebarLayout(
sidebarPanel(
fileInput('file1', 'Choose CSV File',
accept=c('text/csv',
'text/comma-separated-values,text/plain',
'.csv')),
tags$hr(),
uiOutput("dependent"),
uiOutput("independents"),
tags$hr(),
actionButton("action", "Press after reading file and selecting variables")
),
mainPanel(
verbatimTextOutput('contents')
)
)
))
Câu hỏi của tôi là: Tôi muốn hiển thị nút "Nhấn sau khi đọc tệp và chọn biến" có điều kiện khi tải lên thành công.
Tôi đã cố gắng sử dụng các gợi ý có ở đây:
Make conditionalPanel depend on files uploaded with fileInput
Nhưng tôi chỉ không thể làm cho nó hoạt động.
Tôi appreaciate bất kỳ trợ giúp.
Cảm ơn bạn Marat. Tôi đã thử giải pháp của bạn. Nó làm cho nút biến mất ... và điều đó tốt. Nhưng nó không xuất hiện sau khi tải lên tệp. Tôi asumme file server.R của bạn bao gồm một dòng kiểm tra xem các tập tin tải lên thành công. – user23438
@ user23438, tôi không thể nhận được giải pháp bằng cách sử dụng 'conditionPanel', bởi vì tôi không biết cách thiết lập đúng' điều kiện'. Tôi đã chỉnh sửa câu trả lời, bây giờ dựa trên uiOutput. –
Cảm ơn một lần nữa Marat cho thời gian của bạn. Giải pháp mới của bạn đưa tôi đến gần hơn với giải pháp. Bây giờ nút xuất hiện vào đúng thời điểm, nhưng nó tạo ra một vấn đề với nội dung đầu ra $ của tôi. Trước khi tôi có mã trong phần này được bao bọc trong "isolate ({})" được kích hoạt bởi thao tác $ input. Bây giờ đầu vào $ hành động đã biến mất vì nút đã biến mất. Tôi có thể loại bỏ cô lập nhưng sau đó nó in rác cho đến khi các biến thích hợp được chọn. – user23438