首页 > 解决方案 > 视图中的错误:无法将类 'c("gg", "ggplot")' 强制转换为 data.frame

问题描述

试图在其他帖子中找到此问题的解决方案,但找不到帮助我解决问题的解决方案,但我不得不承认这实际上是我第一次使用 R。我只想查看情节“a “到目前为止,这一直有效。检查 str(b) 可确保报告数据帧。现在我收到提到的错误。我还在学习,所以不要犹豫指出任何错误。非常感谢!

require(tidyverse)
require(lubridate)
require(scales)
require(readxl)
library(labeling)
library(magrittr)
c <- read.csv2("Input/MRL_abrufe_2019.csv", stringsAsFactors = F)
c <- abrufe %>% 
  mutate("AUKTION" = hour(as.POSIXct(paste(abrufe$DATUM, abrufe$UHRZEIT.VON), format = "%d.%m.%Y %H:%M")) %/% 4 + 1)

b <- c %>% 
  mutate(ABRUFDATUM = DATUM) %>% 
  select(-DATUM) %>%
  filter(BETR < 0) %>% 
  rowwise() %>%
  mutate("ABRUFGRENZKOSTEN" = (mrl_rel[mrl_rel$TAG == as.Date(ABRUFDATUM, format = "%d.%m.%Y") & mrl_rel$AUKTION == AUKTION,] %>% summarise(total = min(ARBEITSPREIS[KUMSUM >= abs(BETR)])))$total[1])

a <- ggplot(b %>% arrange(ABRUFGRENZKOSTEN) %>% ungroup() %>% mutate(N = 1:n(),"FILL" = case_when(ABRUFGRENZKOSTEN < 0 ~ "NEG", ABRUFGRENZKOSTEN >= 0 & ABRUFGRENZKOSTEN < 80 ~ "NULL", ABRUFGRENZKOSTEN >= 80 ~ "POS")), aes(x = N, y = ABRUFGRENZKOSTEN))+geom_line()+geom_point()

标签: rdataframeggplot2

解决方案


我怀疑你想要print(a)或只是a在控制台中输入。

附加提示:

一个起点(因为我没有要检查的数据)是重组代码以将处理与绘图分开。

b2 <- b %>%
  arrange(ABRUFGRENZKOSTEN) %>%
  ungroup() %>%
  mutate(
    N = 1:n(),
    "FILL" = case_when(
      ABRUFGRENZKOSTEN < 0 ~ "NEG",
      ABRUFGRENZKOSTEN >= 0 & ABRUFGRENZKOSTEN < 80 ~ "NULL",
      ABRUFGRENZKOSTEN >= 80 ~ "POS"
    )
  ) 

ggplot(b2, aes(x = N, y = ABRUFGRENZKOSTEN)) +
  geom_line() +
  geom_point()

在这里我创建了b2这样你就可以检查额外的转换。然后可以将其用于绘图步骤。如果您发现一切正常,您可以重新加入这两个,例如

b %>% 
 processing_steps %>%
 ggplot(aes(x, y)) + 
 geom_point()

推荐阅读