我有一个表列表(df_list)。我想将它们导出到闪亮的csv。将表列表导出到csv时,我在excel中打开它们。在excel中,表的列表放在列中,tablename.colname引用的列。我希望将表格标记为带有单独列号的tble名称,如下图所示。
Cy3 control
Cy5 Cy3 Cy5 Cy3
Min. 0 14170 6043 15
1st Qu. 1 14710 6329 16
Median 1 14960 6833 16
Mean 3.2 15190 6679 16.47
3rd Qu. 4.5 15830 7008 17
Max. 15 16070 7309 19
Cy3.control.Cy5 Cy3.control.Cy3 Cy5.control.Cy5 Cy5.control.Cy3
Min. 0 170 6043 15
1st Qu. 1 14710 6329 16
Median 1 14960 6833 16
Mean 3.2 15190 6679 16.47
3rd Qu. 4.5 15830 7008 17
Max. 15 16070 7309 19
是否还可以添加一个单元格,在该单元格上方提供有关表格的信息,例如实验名称等,但不与其他单元格交互。
我用来生成文件的代码如下:
UI.R:
shinyUI(fluidPage(
fluidRow(
column(4,
fileInput("rawdata", "Enter your .csv file"),
br,
textInput('table_name', 'Data table name to save'),
downloadButton('downloadtable', 'Save data table to .csv')
),
) #end fluidrow
) ### Fluid page end
) #### Shiny UI end
Server:
#### Initiate shinyServer
shinyServer(function(input, output) {
### This reactive function will take the input "inFile" from the UI.R and store it as data
inFile<-reactive({
file1<-input$rawdata
if(is.null(file1)) stop ("Please Upload a Valid .csv file")
datas<-fread(file1$datapath,)
dtableInput<- reactive({
if(is.null(inFile()))
return()
datas<-inFile()
## apply the following functions over the list
df_list<-lapply(df_list,function(x){
## store the summaries of the Cy5 and Cy3 by block
Cy5<-summary(x$y1)
Cy3<-summary(x$y2)
cbind(y1,y2)
})
})
output$downloadtable<-downloadHandler( #### called from UI
filename = function() {paste(input$table_name, '.csv', sep='')},
content = function (file){
write.csv(dtableInput(),file)
})
}) ## end of app
答案 0 :(得分:3)
好的,花了一段时间,因为我之前从未使用过Shiny的fileInput
和downLoad
按钮。基本上我在下面发布的内容可能接近你想要的。它允许您选择要上载的文件,然后选择下载它的位置。
我没有构建您的汇总表,我认为您可以自己处理它并且它会混淆文件处理问题。
有一点需要注意的是,它在普通的RStudio查看器中不起作用(可能是一个错误?它不保存文件),你必须使用浏览器(单击Run App按钮旁边的下拉列表并选择{{1 (见下面的截图)
ui.R:
Run External
server.R:
shinyUI(fluidPage(
fluidRow(
column(4,
fileInput("rawdata", "Enter your .csv file"),
br(),
textInput('table_name', 'Data table name to save'),
downloadButton('downloadtable', 'Save data table to .csv')
)
) #end fluidrow
) ### Fluid page end
) #### Shiny UI end