gpt4 book ai didi

r - 将数据上传到 Shiny 进行分析

转载 作者:行者123 更新时间:2023-12-04 10:41:31 25 4
gpt4 key购买 nike

我正在尝试将文件上传到 Shiny 以对其进行处理然后查看。

我已经能够创建一个带有 CSV 文档的表格,但是输出 myData 不能用作箱线图或任何其他图形的输入。

服务器

    shinyServer(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 <- renderTable({
myData()

})


}

用户界面
library(shiny)

write.csv(data.frame(a = 1:10, b = letters[1:10]), 'test.csv')

shinyUI(fluidPage(
titlePanel("Uploading Files"),
sidebarLayout(
sidebarPanel(
fileInput('file1', 'Choose CSV File',
accept=c('text/csv',
'text/comma-separated-values,text/plain',
'.csv'))
),
mainPanel(
tableOutput('contents'),
plotOutput('distPlot')
)
)
)
)

如何使用我从函数 myData 上传的文件中的数据?

最佳答案

您应该使用 DT 包中的函数 renderDataTable 和 dataTableOutput 来呈现您的表格。您的代码工作正常,如下所示:

library(shiny)
library(DT)

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())
})
}

write.csv(data.frame(a = 1:10, b = letters[1:10]), 'test.csv')

ui<- shinyUI(fluidPage(
titlePanel("Uploading Files"),
sidebarLayout(
sidebarPanel(
fileInput('file1', 'Choose CSV File',
accept=c('text/csv',
'text/comma-separated-values,text/plain',
'.csv'))
),
mainPanel(
DT::dataTableOutput('contents'),
plotOutput('distPlot')
)
)
)
)

shinyApp(ui,server)

另请参阅以下文章:

也可以让用户将 csv 上传到您的 Shiny 应用程序。下面的代码显示了一个关于如何实现这一点的小例子。它还包括一个单选按钮输入,以便用户可以交互地选择要使用的分隔符。
library(shiny)
library(DT)

# Define UI
ui <- shinyUI(fluidPage(

fileInput('target_upload', 'Choose file to upload',
accept = c(
'text/csv',
'text/comma-separated-values',
'.csv'
)),
radioButtons("separator","Separator: ",choices = c(";",",",":"), selected=";",inline=TRUE),
DT::dataTableOutput("sample_table")
)
)

# Define server logic
server <- shinyServer(function(input, output) {

df_products_upload <- reactive({
inFile <- input$target_upload
if (is.null(inFile))
return(NULL)
df <- read.csv(inFile$datapath, header = TRUE,sep = input$separator)
return(df)
})

output$sample_table<- DT::renderDataTable({
df <- df_products_upload()
DT::datatable(df)
})

}
)

# Run the application
shinyApp(ui = ui, server = server)

关于r - 将数据上传到 Shiny 进行分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45449361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com