簡體   English   中英

R 中帶有 Shiny 的 Flexdashboard

[英]Flexdashboard in R with Shiny

我試圖在 flexdashboard 和閃亮的幫助下在 R 中創建一個交互式儀表板。

我有這張表,其中有七列(翻譯成英文):地區、年份、年齡、年齡 2、年齡平均值、工作職位和工資。

我嘗試做的是使用 selectInput() 為區域、年份和工作職位創建 3 個下拉過濾器。

Bratislava I    2009    31.93   31.92   30.66   Priemyselná výroba  1510.24
Bratislava I    2009    31.93   31.92   30.66   Dodávka elektriny, plynu, pary a studeného vzduchu  1506.14
Bratislava I    2009    31.93   31.92   30.66   Dodávka vody, čistenie a odvod odpadových vôd, odpady a služby odstraňovania odpadov    911.0

這就是我現在所做的(我正在粘貼整個 RMarkdown,但我在下面顯示的表格在名為“數據集”的腳本中。

---
title: "Title: Bratislava"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    social: menu
    source_code: embed
runtime: shiny
---

{r global, include=FALSE}
# load data in 'global' chunk so it can be shared by all users of the dashboard
library(ggplot2)
library(flexdashboard)
library(tidyverse)
library(tidyquant)
library(readxl)
library(shiny)

birthdata <- read_excel(path = "C:/Users/Dase03/Downloads/mydata.xlsx")
salarydata <- read_excel(path = "C:/Users/Dase03/Downloads/salary.xlsx")

salarydata <- salarydata %>%
    gather(jobs, wage, -1:-2) 


salarydata <- salarydata %>%
  filter(Rok > 2008 & wage > 0 & wage != "D")

birthdata <- birthdata %>%
  filter(Rok > 2008)


dataset <- left_join(birthdata, salarydata)

dataset$wage <- as.numeric(dataset$wage)

dataset$Okres <- factor(dataset$Okres)

dataset$Okres <- factor(dataset$Okres, levels = c("Bratislava I", "Bratislava II", "Bratislava III", "Bratislava IV", "Bratislava V"))

view(dataset)


Inputs {.sidebar}
-----------------------------------------------------------------------

{r}


selectInput("x", "Choose a District", choices = unique(dataset$Okres))
selectInput("y", "Choose a Year", choices = unique(dataset$Rok))
selectInput("z", "Choose a Job", choices = unique(dataset$jobs))

輸出

數據



renderPlot({
  ggplot(dataset, aes_string(x=input$x, y=input$y)) + geom_bar()
})

但是,我無法運行它,因為它向我顯示了這樣的錯誤:

:1:12: 意外符號 1: Bratislava I ^

我試圖修復它,它看起來有效,但過濾器沒有反應。 條形圖沒有改變(不是交互式的,所以我確定我在某個地方出錯了。

有人願意幫助一下如何讓它運行儀表板嗎?

最終輸出將用於 y 軸指標,如年齡、年齡 2、年齡平均值和工資。

非常感謝您的任何建議。

我已經盡力了。 我特別修改了您的代碼和您的數據,以便快速可視化某些內容。

[![enter code here][1]][1]

---
title: "Title: Bratislava"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    social: menu
    source_code: embed
runtime: shiny
---

```{r global, include=FALSE}

# load data in 'global' chunk so it can be shared by all users of the dashboard
library(ggplot2)
library(flexdashboard)
library(tidyverse)
library(tidyquant)
library(readxl)
library(shiny)

# birthdata <- read_excel(path = "C:/Users/Dase03/Downloads/mydata.xlsx")
# salarydata <- read_excel(path = "C:/Users/Dase03/Downloads/salary.xlsx")
# 
# salarydata <- salarydata %>%
#     gather(jobs, wage, -1:-2) 
# 
# 
# salarydata <- salarydata %>%
#   filter(Rok > 2008 & wage > 0 & wage != "D")
# 
# birthdata <- birthdata %>%
#   filter(Rok > 2008)
# 
# 
# dataset <- left_join(birthdata, salarydata)

# Added for convenience
dataset <- read_excel(path = "joint_dataset.xlsx")

dataset$age = as.numeric(dataset$age)
dataset$wage = as.numeric(dataset$wage)

```


Column
=======================================================================

Inputs {.sidebar}
-----------------------------------------------------------------------

```{r}

sliderInput("age", "Select age", min = min(dataset$age), max = max(dataset$age), value = c(min(dataset$age), max(dataset$age)))
sliderInput("wage", "Select wage", min = min(dataset$wage), max = max(dataset$wage), value = c(min(dataset$wage), max(dataset$wage)))

```


Main panel
---------------------------------------------------------------------

```{r}

renderPlot({
  ggplot(dataset[dataset$age >= min(input$age) & dataset$age <= max(input$age) &
                   dataset$wage >= min(input$wage) & dataset$wage <= max(input$wage),], aes(age, wage)) + geom_line()
})

```

.

在此處輸入圖片說明

請注意Flexdashboard 格式

請考慮促進重現性 例如,列dataset$Okres突然出現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM