0

このエラーメッセージが表示されます「data.frame(mean_Flow、dates) のエラー: 引数は行数が異なることを暗示しています: 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
4

1 に答える 1

0

に渡された式はstat_poly_eq()、ggplot レイヤー内で見られるように「データ」内で評価されます。つまり、 の変数の名前を使用するのではなくdf、変数がマッピングされた美学の名前を使用する必要があります。言い換えれば、@Richard Telford は、何が問題なのかを正しく推測しました。stat_smooth()この動作は、上記のコードが のデフォルト値を使用する のy ~ x動作と同じですformula

于 2020-03-21T11:47:42.547 に答える