Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 错误:在绘图中只有字符串可以转换为符号_R_Shiny - Fatal编程技术网

R 错误:在绘图中只有字符串可以转换为符号

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,

我试图使用我在shiny中创建的函数创建ggplot,但我得到了这个结果

中的错误:只有字符串可以转换为符号

我有一个类似的问题,通过在
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)