R 错误:在绘图中只有字符串可以转换为符号
我试图使用我在shiny中创建的函数创建ggplot,但我得到了这个结果R 错误:在绘图中只有字符串可以转换为符号,r,shiny,R,Shiny,我试图使用我在shiny中创建的函数创建ggplot,但我得到了这个结果 中的错误:只有字符串可以转换为符号 我有一个类似的问题,通过在fre函数中使用这个问题得到了修复 var_str1 <- var var <- rlang::ensym(var) 进入条形图的变量是一个字符串。我们可以转换为symbol并使用 bar_plot <- function(data, var) { var1 <- var data <- do.call(as_label,
中的错误:只有字符串可以转换为符号
我有一个类似的问题,通过在fre
函数中使用这个问题得到了修复
var_str1 <- var
var <- rlang::ensym(var)
进入条形图的变量是一个字符串。我们可以转换为
sym
bol并使用代码>
bar_plot <- function(data, var) {
var1 <- var
data <- do.call(as_label, list(data, ensym(var)))
data %>%
filter((!! rlang::sym(var1)) != "Neither") %>%
ggplot(aes(!! rlang::sym(var1))) +
geom_bar() +
coord_flip() +
theme_classic() +
labs(x = NULL, y = "Count", title = var_label(pull(data, !! rlang::sym(var1))))
}
bar\u-plot进入bar\u-plot
的变量是一个字符串。我们可以转换为sym
bol并使用代码>
bar_plot <- function(data, var) {
var1 <- var
data <- do.call(as_label, list(data, ensym(var)))
data %>%
filter((!! rlang::sym(var1)) != "Neither") %>%
ggplot(aes(!! rlang::sym(var1))) +
geom_bar() +
coord_flip() +
theme_classic() +
labs(x = NULL, y = "Count", title = var_label(pull(data, !! rlang::sym(var1))))
}
条形图
library(shiny)
library(questionr)
library(dplyr)
library(ggplot2)
library(tidyr)
library(haven)
library(labelled)
library(scales)
library(sjlabelled)
fre <- function(var) {
var_str1 <- var
var <- rlang::ensym(var)
abc <- questionr::na.rm(dat[, var_str1])
abc <- questionr::freq(abc, total = TRUE, na.last = TRUE, digits = 2)
abc <- cbind(Label = rownames(abc), abc)
abc <- questionr::rename.variable(abc, "n", "Frequency")
abc <- questionr::rename.variable(abc, "%", "Percent")
abc <- tidyr::separate(abc, Label, into = c("Value", "Label"),
sep = "] ")
row.names(abc) <- NULL
abc <- abc %>% dplyr::mutate(Value = gsub("[[:punct:]]", '', Value)) %>%
dplyr::select(Label, Value, Frequency, Percent)
abc
}
bar_plot <- function(data, var) {
var1 <- var
data <- do.call(as_label, list(data, ensym(var)))
data %>%
filter((!! rlang::sym(var1)) != "Neither") %>%
ggplot(aes(!! rlang::sym(var1))) +
geom_bar() +
coord_flip() +
theme_classic() +
labs(x = NULL, y = "Count", title = var_label(pull(data, !! rlang::sym(var1))))
}
dat <- read_spss("http://staff.bath.ac.uk/pssiw/stats2/SAQ.sav")
ui <- fluidPage(
titlePanel(" "),
sidebarLayout(
sidebarPanel(
selectInput("var1", "Frequency Table", choices = names(dat), selected = NULL)
),
mainPanel(
tableOutput("fretab"),
plotOutput("barplot")
)
)
)
server <- function(input, output) {
output$fretab <- renderTable({
fre(input$var1)
})
output$barplot <- renderPlot({
bar_plot(dat, input$var1)
})
}
shinyApp(ui = ui, server = server)