Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shining*for*循环自动下载绘图_R_Loops_For Loop_Ggplot2_Shiny - Fatal编程技术网

Shining*for*循环自动下载绘图

Shining*for*循环自动下载绘图,r,loops,for-loop,ggplot2,shiny,R,Loops,For Loop,Ggplot2,Shiny,我对shiny还很陌生,我正在尝试制作一个shiny应用程序,它允许用户通过一个简单的下载按钮下载某个数据的所有可能组合 然而,shiny似乎不允许我在shiny之外使用的标准for循环 所以基本上,我试图用这些可复制的数据来让用户下载所有9个可能的散点图(1,1)、(1,2)、(1,3)等等 我尝试过使用lapply、isolate、local等,但它很简单,要么生成3个相同的绘图,要么就不能像当前代码那样工作 非常非常感谢您的帮助 先谢谢你 这是我当前的用户界面 #UI library(sh

我对shiny还很陌生,我正在尝试制作一个shiny应用程序,它允许用户通过一个简单的下载按钮下载某个数据的所有可能组合

然而,shiny似乎不允许我在shiny之外使用的标准
for循环

所以基本上,我试图用这些可复制的数据来让用户下载所有9个可能的散点图
(1,1)、(1,2)、(1,3)
等等

我尝试过使用
lapply、isolate、local等,但它很简单,要么生成3个相同的绘图,要么就不能像当前代码那样工作

非常非常感谢您的帮助

先谢谢你

这是我当前的用户界面

#UI
library(shiny)
library(datasets)
library(ggplot2)
Test1<- c(3,5,7)
Test2<- c(21000, 23400, 26800)
Test3<- c(600, 700, 800)
df <- data.frame(Test1, Test2, Test3)
rownames(df)<-colnames(df)
*ui <- shinyUI(fluidPage(
  titlePanel("Column Plot"),
  tabsetPanel(
    tabPanel("First Type",
             pageWithSidebar(
               headerPanel('My First Plot'),
               sidebarPanel(
                 selectInput('xcol', 'X Variable', ""),
                 selectInput('ycol', 'Y Variable', "", selected = ""),
                 actionButton(inputId = "clicks_3",label = "Real"),
               ),
               mainPanel(
                 plotOutput('MyPlot')
               )
             )
    )
    
  )
)
)
#用户界面
图书馆(闪亮)
图书馆(数据集)
图书馆(GG2)

Test1如果您想下载所有绘图,我建议使用降价报告解决方案。在这里,您可以使用lappy并迭代所有绘图。看

在您的代码中,括号似乎不正确,请参阅下面的部分了解解决方案

  observeEvent(input$clicks_3,{
    for (i in 1:3){
      assign(paste("Plotinput_",i,sep = ""),({
        x <- data()[, c(colnames(data())[i], input$ycol)]
        plot(x)
      }))
    }
    lapply(1:3, function(k){local({
      ggsave(plot = eval(parse(text=paste("Plotinput_",k,sep = ""))),filename = paste(k,"barplot.png",collapse = ""))
    })
    })
  })
observeEvent(输入$clicks\u 3{
(我在1:3中){
分配(粘贴(“Plotinput”,i,sep=”“)({

非常感谢您的建议,它非常有效:),第一次使用降价,但似乎非常方便。欢迎您。如果它解决了您的问题,请接受我的回答
  observeEvent(input$clicks_3,{
    for (i in 1:3){
      assign(paste("Plotinput_",i,sep = ""),({
        x <- data()[, c(colnames(data())[i], input$ycol)]
        plot(x)
      }))
    }
    lapply(1:3, function(k){local({
      ggsave(plot = eval(parse(text=paste("Plotinput_",k,sep = ""))),filename = paste(k,"barplot.png",collapse = ""))
    })
    })
  })