我是Shiny的新手!这就是我的目标:
我需要使用闪亮运行我的R代码并显示输出。 我知道我可以使用下面的代码来运行r代码
source("RCODE.R")
但我的Rcode需要用户本地驱动器中的两个文件通过闪亮。
有没有办法让用户选择文件,然后将它们输入我的R代码,然后在运行代码后显示输出。
我已经关注了
Interactive directory input in shinny App用于浏览用户文件
感谢您的帮助
答案 0 :(得分:0)
以下代码有效:
<强> UI.R 强>
library(shiny)
#ui.R
shinyUI(fluidPage(
# Application title
titlePanel("Text Mining on R"),
sidebarLayout(
sidebarPanel(
fileInput('file1', 'Select the Input File',
accept=c('text/csv','text/comma-separated-values,text/plain','.csv')),
tags$hr(),
fileInput('file2', 'Select the UserTopic file',
accept=c('text/csv','text/comma-separated-values,text/plain','.csv'))
),
mainPanel(
dataTableOutput('table'),
downloadButton('OutputFile', 'Download')
)
))
)
<强> Server.R 强>
#server.R
library(shiny)
shinyServer(function(input, output) {
observe({
file1 = input$file1
file2 = input$file2
if (is.null(file1) || is.null(file2)) {
return(NULL)
}
data1 = read.csv(file1$datapath,header = TRUE, sep=",",skipNul = TRUE)
data2 = read.csv(file2$datapath,header = TRUE, sep=",",skipNul = TRUE)
source("RCode.R", local = TRUE)
#output$table <- renderDataTable(output2)
output$table <- renderDataTable({
my_function(file1$datapath,file2$datapath)
})
output$OutputFile <- downloadHandler(
filename = function() {
paste("OutputFile", " ",Sys.Date(),".csv",sep="")
},
content = function(file) {
write.csv(my_function(file1$datapath,file2$datapath), file, sep = ",",
row.names = FALSE)
}
)
})
})
此代码从Shiny界面读取两个csv文件并显示R代码的输出,它还有一个链接来下载显示的输出。