ggpmis c устраняет путаницу в отношении суммарных длин данных - PullRequest
0 голосов
/ 16 марта 2020

Я получаю это сообщение об ошибке «Ошибка в data.frame (mean_Flow, date): аргументы подразумевают различное количество строк: 84, 30274», и я знаю, что не совсем понятно, какую функцию даты я хочу получить, но я Я не уверен, как это прояснить. Я хочу, чтобы данные суммировались как среднегодовые. Он строит это правильно, но не производит правильный stat_poly_eq. Буду признателен за любую помощь!

library(dataRetrieval)
library("plyr")
siteNo = "02202500"
pCode = "00060"

daily = readNWISdv(siteNo, pCode, "1800-10-01","2020-09-30", statCd="00003")
daily = renameNWISColumns(daily)
dates= format(as.Date(daily$Date), format = "%Y")
ddply(daily, .(site_no, dates), summarise,
      mean_Flow = mean(Flow)*(0.0283168))

library(dplyr)
library(ggpmisc) # for dealing with stat equations
library(ggplot2) # for making plots 
library(lubridate) # for working with dates
library(scales) #for working with date_format

df=data.frame(mean_Flow, dates)
head(df)
df$dates = as.Date(df$dates, format = "%Y")
my.formula = df$mean_Flow ~ df$dates

p1=ggplot(data = df,aes(dates, mean_Flow)) +
  geom_line(group = 1) +
  geom_smooth(method = "lm", se=FALSE) +
  stat_poly_eq(formula = my.formula,
               eq.with.lhs = "italic(hat(y))~`=`~",
               aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")))+
  theme_classic()+
  labs(x="", y=(expression(Discharge~(m^{3}~s^{-1}))))+
  scale_x_date(breaks = "5 year", labels = date_format("%Y"))+
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
p1

1 Ответ

0 голосов
/ 21 марта 2020

Формула, переданная в stat_poly_eq(), оценивается в «данных», как это видно в слое ggplot: то есть вместо использования имен переменных в df, имен эстетики, для которой переменные были сопоставлены должны быть использованы. Другими словами, @Richard Telford правильно угадал, в чем проблема. Это поведение идентично поведению stat_smooth(), для которого приведенный выше код использует значение по умолчанию y ~ x для formula.

...