如何在R

时间:2017-02-15 14:18:10

标签: r shiny

我想要创建一个R闪亮的应用程序,我想有两个selectInput,即数据集名称和列名称。现在,我能够在第一个输入中获取数据集名称,但我无法创建依赖列selectIput(其列表将取决于所选的数据集)。请指导。

require(shiny)
require(MASS)

a <- data(package = "MASS")[3]
b <- a$results[,3]

ui <- fluidPage(
  sidebarPanel(width = 2,

  selectInput(inputId = "dsname",label = "Select Dataset:",choices = c(b)),

  colnames <- names("dsname"), 

  selectInput(inputId = "columns", label = "Choose columns",
              choices  = c(colnames))                   
  )
)

server <- function(input,output) {}

shinyApp(ui <- ui, server <- server)

1 个答案:

答案 0 :(得分:0)

为了在Shiny中拥有“响应”元素,您需要包装表达式以计算reactive({...})中的响应元素。

您可以在renderUI server()uiOutput ui()中使用library(shinythemes) library(shiny) library(ggplot2) ui <- fluidPage(theme = shinytheme("superhero"), titlePanel("Welcome to Responisve Shiny"), sidebarLayout( sidebarPanel( selectInput("data", "Dataset:", choices = c("mtcars", "iris", "diamonds") ), uiOutput("x_axis"), uiOutput("y_axis"), uiOutput("color") ), mainPanel( plotOutput("distPlot") ) ) ) server <- function(input, output) { output$x_axis <- renderUI({ col_opts <- get(input$data) selectInput("x_axis2", "X-Axis:", choices = names(col_opts)) }) output$y_axis <- renderUI({ cols2 <- reactive({ col_opts2 <- get(input$data) names(col_opts2)[!grepl(input$x_axis2, names(col_opts2))] }) selectInput("y_axis2", "Y-Axis:", choices = cols2(), selected = "hp") }) output$color <- renderUI({ col_opts <- get(input$data) selectInput("color", "Color:", choices = names(col_opts), selected = "cyl") }) output$distPlot <- renderPlot({ if(input$data == "mtcars"){ p <- ggplot(mtcars, aes_string(input$x_axis2, input$y_axis2, color = input$color)) + geom_point() } if(input$data == "iris"){ p <- ggplot(iris, aes_string(input$x_axis2, input$y_axis2, color = input$color)) + geom_point() } if(input$data == "diamonds"){ p <- ggplot(diamonds, aes_string(input$x_axis2, input$y_axis2, color = input$color)) + geom_point() } print(p) }) } shinyApp(ui = ui, server = server) 。这是我为使用R的一些数据集(虹膜,mtcars和钻石)而构建的一个例子:

import java.io.*;
public class p19
{
    public static void main()throws IOException
    {
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new  BufferedReader(isr);
        char arr[] = new char[10];
        int i ;char plol;
        System.out.println("Enter characters");
        for(i=0;i<10;i++)
        {
            arr[i] = (char)br.read();
        }
        for(i=0;i<10;i++)
        {
            int x = 0;
            for(int j=1;j<10-i;j++,x++)
            {
                if(arr[j]<(arr[x]))
                {
                    plol = arr[j];
                    arr[j] = arr[i];
                    arr[i] = plol;
                }
            }
        }
        for(i=0;i<10;i++)
            System.out.println(arr[i]);
    }
}