'How can I use this ggplot and use my input to change the variable name for y?
For some reasons the three inputs works fine, they are used to filter the data frame. But the last input to change between variable names does not work. Can anyone find the error or the solution. My code is follows:
title: "Janus Heilsuefling" output: flexdashboard::flex_dashboard runtime: shiny
library(flexdashboard)
library(shiny)
library(tidyverse)
library(dplyr)
library(plotly)
library(lme4)
library(lmerTest)
library(emmeans)
Inputs {.sidebar}
bara_fyrsta <- read.csv("bara_fyrsta.csv", header = TRUE, sep=",")
vanir <- read.csv("fyrir_thor.csv", header = TRUE, sep=",")
vanir$aldursflokkur <- cut(vanir$aldur, c(65,70,75, 80, 120), right = F)
bara_fyrsta$aldursflokkur <- cut(bara_fyrsta$aldur, c(65,70,75, 80, 120), right = F)
levels(bara_fyrsta$aldursflokkur) <- c("65-70 ára","70-75 ára", "75-80 ára","80 ára og eldri")
levels(vanir$aldursflokkur) <- c("65-70 ára","70-75 ára", "75-80 ára","80 ára og eldri")
bara_fyrsta$Kyn <- factor(bara_fyrsta$Kyn)
vanir$Kyn <- factor(vanir$Kyn)
listi_sveitarfelog <- unique(bara_fyrsta$sveitarfelag)
listi_aldursflokkar <- unique(bara_fyrsta$aldursflokkur)
breytulisti <- names(bara_fyrsta)
selectInput(inputId = "sveitarfelag",
label = "Veldu sveitarfélag",
choices = listi_sveitarfelog)
selectInput(inputId = "aldursflokkur",
label = "Veldu Aldursflokk",
choices = listi_aldursflokkar)
Kynjalisti<-c("Karl", "Kona")
selectInput(inputId = "Kyn",
label = "Veldu Kyn",
choices = Kynjalisti)
breytulisti <- c("MMa","Dagleg_Hreyfing_Medaltal", "Life_Quality","HaStyBadar","Stóll_30s","BMI")
selectInput(inputId = "talnabreyta",
label = "Hvaða breytu viltu skoða?",
choices = breytulisti)
output$mynd_boxplot <- renderPlot({bara_fyrsta %>%
filter(sveitarfelag == input$sveitarfelag) %>%
filter(Kyn == input$Kyn)%>%
ggplot(aes(x=aldursflokkur, y=input$talnabreyta)) +geom_boxplot()})
Column {data-width=450}
Dreifing á vövðamassa fólks í upphafi
plotOutput("mynd_boxplot")
Leiðrétt meðaltöl fyrir mælingarnar 5
vanir <- vanir %>% arrange(RN,Mæling) %>% mutate(m=factor(Mæling))
fit1 <- lmer(MMa ~ m + aldursflokkur + Kyn + (1|RN),data=vanir)
ema <-emmeans(fit1,pairwise~m)
dema <- data.frame(ema)
medaltol =
plot(ema,horizontal=F)
ggplotly(medaltol)
Column {data-width=450}
Upphafsstaða út frá kyni og aldri
mynd = ggplot(bara_fyrsta, aes(x = aldur,y = MMa, color = Kyn)) +
geom_point() + geom_smooth(se = F)
ggplotly(mynd)
Endurtekningar mælingar einstaklinga
idkendur <-unique(vanir$RN)
gagnasett <- filter(vanir, RN==idkendur[2])
linurit = ggplot(gagnasett, aes(x = Mæling, y = MMa, color = Kyn)) + geom_point() + geom_line()
ggplotly(linurit)
Solution 1:[1]
It is a bit difficult to understand your code/question, as a lot of it is in Faroese. However, your main issue with the plot has to do with input$talnabreyta being a string, which cannot be passed as a variable name in ggplot as you do. You need to treat it either as a string in the proper way (1) or use it as a symbol (2).
I.e.
Change:
(0) ggplot(aes(x=aldursflokkur, y=input$talnabreyta))
To:
(1) ggplot(aes(x=x, y=.data[[input$talnabreyta]])) or
(2) ggplot(aes(x=x, y=!!ensym(talnabreyta)))
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | harre |
