Tôi muốn sử dụng khung dữ liệu phản hồi để hiển thị nhiều ô và đồ thị. Tôi có một tập dữ liệu mà tôi muốn có thể lọc. Tôi đã tìm thấy cài đặt bộ lọc phù hợp, tôi muốn hiển thị dữ liệu trên một số ô khác nhau - sẽ cập nhật nếu cài đặt bộ lọc bị thay đổi.Làm cách nào để xây dựng một khung dữ liệu phản hồi trong R/Shiny?
Điều này có thể giải thích, những gì tôi đang cố gắng để làm:
UI:
fluidPage(
sidebarLayout(
sidebarPanel(
checkboxGroupInput("checkGroups",
label = "Include", choices = list("1 star" = 1, "2 star" = 2,
"3 star" = 3, "4 star" = 4,
"5 star" = 5),
selected = list(1, 2, 3, 4, 5)),
checkboxInput("checkbox", "Include Replies"),
actionButton("Button", "Update")
),
mainPanel(
showOutput("plot", "nvd3"),
showOutput("pieplot", "nvd3")
)
)
)
SERVER:
rating <- c(2, 3, 5, 4, 1, 5, 3, 1, 4)
date_time <- c("2015-05-14", "2015-05-07", "2015-05-06", "2015-04-11", "2015-01-07", "2014-12-06", "2014-04-11", "2014-01-07", "2013-12-06")
repliesOnly <- c(TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE, FALSE, TRUE)
data <- data.frame(rating, date_time, repliesOnly)
function(input, output, session) {
load("data.Rdata")
newdata <- reactive({
filter_data <- data
filter_data <- filter_data %>% filter(rating %in% input$checkGroups)
filter_data <- filter_data %>% filter(repliesOnly %in% input$checkbox)
return(filter_data)
})
output$plot <- renderChart({
plot <- nPlot(rating ~ date_time, data = newdata,
type = "multiBarHorizontalChart", dom = 'plot')
return(plot)
})
output$pieplot <- renderChart({
pieplot <- nPlot(rating ~ date_time, data = newdata,
type = "pieChart", dom = 'pieplot')
return(pieplot)
})
}
Nó có thể được thực hiện? Tất nhiên tôi chỉ có thể bao gồm các bộ lọc cho mỗi đồ thị-đầu ra, nhưng số liệu của tôi là khá lớn và bộ lọc của tôi là khá phức tạp, vì vậy nếu nó nên tính toán nó cho mỗi đồ thị nó mất mãi mãi.
Tất cả trợ giúp đều được đánh giá cao!
Bạn nhận hàm 'showOuput' từ đâu? Hãy đảm bảo ví dụ của bạn có thể sao chép trước khi đăng. – nrussell
Dường như tất cả những gì bạn phải làm là thêm một cái gì đó như 'dat <- newdata()' vào các lệnh kết xuất đầu ra của bạn và sử dụng 'dat' trong các lệnh cốt truyện của bạn. – jenesaisquoi
thực sự tôi nghĩ rằng bạn chỉ có thể thêm '()' sau khi 'newdata' như bạn đã viết nó, bạn chỉ cần gọi' newdata'. – jenesaisquoi