2017-10-05 5 views
1

Das einzige Problem ist, dass die Stichproben nicht die Net Return Spalte aus den Excel-Dateien summieren, die mit dem sliderInput geändert wird. Ich habe versucht, Summe zu verwenden und zusammenzufassen, aber ich habe keine Ergebnisse erhalten. In der Tat, ohne die Funktion scale_y_continuous breaks plottet es eine Reihe von Werten (was ist, weiß ich, dass es nicht tut, was ich will). Jede Hilfe wird geschätzt! Vielen Dank!Zufällige Stichproben, die von sliderInput gesteuert werden

UI:

filtered = readxl::read_excel("/Users/Filter2.xlsx") 
unfiltered = readxl::read_excel("/Users/Unfilter2.xlsx") 

ui = fluidPage(
    sliderInput("obs", "Number of Observations", value = 550, min = 100, max = 1000), 
    plotOutput("filter") 
)  

Server:

server = function(input, output) { 
    output$filter = renderPlot({ 
    mysample = filtered[sample(1:nrow(filtered), input$obs, 
          replace=FALSE),] 
    mysample2 = unfiltered[sample(1:nrow(unfiltered), input$obs, 
           replace=FALSE),] 
    tbl = bind_rows(Filtered = mysample, Unfiltered = mysample2, 
        .id="type") 
    #sum(mysample) 
    #sum(mysample2) 
    #summarise(mysample = sum(mysample), 
    #   mysample2 = sum(mysample2)) 

    ggplot(tbl, aes(x = type, fill = type)) + 
    geom_col(aes(y = Net_Return)) + 
    labs(x = "Type", y = "Net Return") + 
    theme_bw() + 
    theme(legend.position = "none") + 
    scale_y_continuous(labels = scales::dollar, limits = c(0, 2500000)) 
}) 
} 

enter image description here

Antwort

2

Wir brauchen eine group_bysum heißt

library(ggplot2) 
library(shiny) 
library(dplyr) 

ui = fluidPage(
    sliderInput("obs", "Number of Observations", value = 550, min = 1, max = 10), 
    plotOutput("filter") 
)  
filtered <- mtcars[1:15,] 
unfiltered <- mtcars 

server = function(input, output) { 
    output$filter = renderPlot({ 
    mysample = filtered[sample(1:nrow(filtered), input$obs, 
           replace=FALSE),] 
    mysample2 = unfiltered[sample(1:nrow(unfiltered), input$obs, 
            replace=FALSE),] 
    tbl = bind_rows(Filtered = mysample, Unfiltered = mysample2, 
        .id="type") %>% 
        group_by(type) %>% 
        summarise(wt = sum(wt)) 

    print(nrow(tbl)) 
    print(tbl) 
    #sum(mysample) 
    #sum(mysample2) 
    #summarise(mysample = sum(mysample), 
    #   mysample2 = sum(mysample2)) 

    ggplot(tbl, aes(x = type, fill = type)) + 
     geom_col(aes(y =wt)) + 
     labs(x = "Type", y = "Weight") + 
     theme_bw() + 
     theme(legend.position = "none") 
    }) 
} 
shinyApp(ui, server) 

-Ausgang

enter image description here

+1

Vielen Dank! Genau das, was ich brauchte – Tarzan

Verwandte Themen