当前位置: 首页 > 知识库问答 >
问题:

R:不知道为什么ggplot会失败

高运诚
2023-03-14

我是闪亮的新手。

我正在尝试编写一个R脚本,我想做的一件事是生成一个给定日期和不同地区的给定广告商的广告浏览量的柱状图。

我的表格包含以下列(带有示例数据):

Date    Impressions Advertiser  Factor 1         DMA

2/19       22789     McDonalds   Cheap           Los Angeles
2/17       15002    Regal Cinem  Luxury          New York
2/20       12345     McDonalds   Cheap           D.C.

我在UI选项卡上想要的输出是这样的

ggplot(df2, aes(x=DMA, y=Impressions, fill=DMA)) +geom_histogram()

应该是这样的

然而,我得到了一个错误

Error: object 'DMA' not found

当我基本上把相同的公式粘贴到R闪亮的时候。我的代码如下

服务器。R

library(shiny)
library(ggplot2)

df<- na.omit(read.csv("data.csv", fill= TRUE, nrows= 3000000))

shinyServer(function(input, output){

df2<- reactive({df[df$Date==input$date & df$Advertiser==input$name, ]})

#FIXME why is this plot not printing
output$plot1<- renderPlot({
  print(ggplot(df2, aes(x=DMA, y=Impressions, fill=DMA)) +geom_histogram())

})
#end of server brackets
})

用户界面。R

library(shiny)
df<- na.omit(read.csv("data.csv", fill= TRUE, nrows= 3000000))
daterange<- unique(df$Date)
names <- unique(df$Advertiser)

shinyUI(pageWithSidebar(

  #Title of Application
  headerPanel("Advertisement"), 

  sidebarPanel( 

    selectInput("date", "Date:", 
                choices= daterange),

    selectInput("name", "Partner", 
                choices= names)

  ),

  mainPanel(
    tabsetPanel(
      tabPanel("Plot1", plotOutput("plot1"))

      )
    )

  #end of UI brackets
  ))

其他一切都正常,包括标签。但是这个阴谋没有出现。

更新:谢谢,GGplot现在通过在其周围包装print()语句来工作。但是,如果找不到变量,则会出现一个新问题。

共有2个答案

楚嘉胜
2023-03-14

尝试用print()包装ggfield对象

郗浩
2023-03-14

df2不是数据,而是一个反应函数。在ggplot中使用df2(),不要忘记如上所述打印。

如果发生这种情况,不要假设“DMA存在”,而是在临界点插入一个print(str(df2))

 类似资料:
  • > 控制器 } 服务 -板 > 原因:java。lang.IllegalArgumentException:给定的id不能为null!位于组织。springframework。util。明确肯定组织中的notNull(Assert.java:201)。springframework。数据jpa。存储库。支持简单Parepository。java上的deleteById(SimpleJpaRepos

  • 不管我怎么努力,页面都被缓存了。因此,php函数运行一次后,总是显示缓存的结果,直到您按下Shift F5 > 我禁用了奥普卡什(在 phpinfo()上不再有奥普卡切了) 我禁用了APC(phpinfo()上不再有APC) 我使用了标题 Cache-Control:no-store,no-cache,必须重新验证"); // HTTP/1.1标头(Cache-Control:post-check

  • 问题内容: 我的Java代码和MySQL数据库之间的连接速度非常慢,这是一个问题。我不知道瓶颈在哪里。 我的程序或多或少是一个聊天机器人。用户输入内容后,我的程序将句子分解为单词,然后将每个单词的单词发送到数据库。如果在该处找到了某些内容,则用户将获得输出。该数据库位于外部服务器上,但我也尝试连接到我旁边的PC。两者都很慢。 我通常在另一个工作正常的地方尝试了一次连接,而且在大多数情况下都很快。

  • 我想发送用户的电子邮件检查副本 这是我的背部控制器 这是我的前控制器 这是我的观点 当我使用“console.log”检查时,前端控制器可以正确地获取用户的电子邮件。但是在后面的控制器中,RequestParam什么都没有,只有NULL没有错误代码,除了'nullPointerException'。 我想这不是沟通错误。我是不是错过了什么?谢了!

  • 运行应用程序后检测到错误。我找不到任何问题,我需要帮助。 包结构由config和controller组成。

  • 这就是问题和我的Javascript解决方案 您将获得指向链表头节点的指针和一个要添加到列表中的整数。使用给定的整数创建一个新节点。在链表的尾部插入此节点,并返回插入此新节点后形成的链表的头节点。给定的头指针可能为null,这意味着初始列表为空。

  • 问题内容: 当我使用session_destroy()时,出现“会话对象销毁失败”的消息。 是什么导致此错误? 问题答案: 错误: 警告:session_destroy():会话对象销毁失败 这相当琐碎,没有会话 已启动, 对象已提交,因此您无法销毁它。 该运营商并不总是有效的,例如用错误报告功能。 编辑: 1)导致此错误的原因是什么? 此错误通常是由于PHP尝试删除会话文件而导致的,但找不到它。