我有一个包含每日流量的 csv 文件。我需要将每日值合并到每月中。我正在尝试使用“HydroTSM”包的“daily2monthly”功能。BRPT2.csv 中的示例数据:
_date,_time,_value,_flag
10/2/1959,0:00:00,0,2
10/3/1959,0:00:00,0,2
10/4/1959,0:00:00,1540,2
10/5/1959,0:00:00,16100,2
10/6/1959,0:00:00,6680,2
10/7/1959,0:00:00,3100,2
10/8/1959,0:00:00,2060,2
Run Code Online (Sandbox Code Playgroud)
我使用了以下命令:
qme<- read.csv(file = "BRPT2.csv",header = T,sep = ",") #read in csv file
date<- as.Date(qme$X_date,format("%Y-%m-%d")) #convert date column to date format from factor
flow<- qme[,3]
flow_2<-replace(flow,flow==-999,0) #replace the missing values (-999) with 0
df<- data.frame()
df<- rbind(df,data.frame(date,flow_2,stringsAsFactors = FALSE))
daily2monthly(df,FUN=sum,dates=1)
Run Code Online (Sandbox Code Playgroud)
它给出以下错误消息:
rownames<-( , value = c("Oct-1959", "Nov-1959", "Dec-1959",中的错误*tmp*:尝试在没有维度的对象上设置 'rownames'
有人可以帮我解决这个问题吗?提前致谢。
我正在尝试用一些预测数据绘制箱线图。并希望将观察结果作为一条线添加到图中。我在这里生成了一个数据样本,以便您可以了解它的样子。
$forecasts<- data.frame(f_type=c(rep("A",9),rep("B",9)),Date=c(rep(as.Date("2007-01-31"),3),rep(as.Date("2007-02-28"),3),rep(as.Date("2007-03-31"),3),rep(as.Date("2007-01-31"),3),rep(as.Date("2007-02-28"),3),rep(as.Date("2007-03-31"),3)),value=c(10,50,60,05,90,20,30,46,39,69,82,48,65,99,75,15,49,27))
$observation<- data.frame(Dt=c(as.Date("2007-01-31"),as.Date("2007-02-28"),as.Date("2007-03-31")),obs=c(30,49,57))
通过预测,我可以使用 ggplot2 绘制箱线图和须线图,如下所示。
$p<- ggplot(data = forecasts, aes(x=as.factor(Date), y=value))
p<- p + geom_boxplot(aes(fill=f_type))
现在我想将这些日期的观察结果作为一条线添加到该图中。到目前为止,我已经尝试了以下方法:
$p<- p + geom_line(data = observation,aes(x=Dt,y=obs))。这给出了一个错误:
错误:输入无效:date_trans 仅适用于 Date 类的对象
将 x 轴作为这样的因子:
$p<- p + geom_line(data = observation,aes(x=as.factor(Dt),y=obs))为此我收到以下错误:
geom_path:每组仅包含一个观察值。群体审美需要调整吗?
谁能建议我如何实现这一目标?提前致谢。
我正在研究一个带有预测和观测的箱线图,这是一个非常长的数据集.我在这里提供样本格式.
> forecasts <- data.frame(f_type = c(rep("A", 9), rep("B", 9)),
Date = c(rep(as.Date("2007-01-31"),3), rep(as.Date("2007-02-28"), 3), rep(as.Date("2007-03-31"), 3), rep(as.Date("2007-01-31"), 3), rep(as.Date("2007-02-28"), 3), rep(as.Date("2007-03-31"), 3)),
value = c(10, 50, 60, 05, 90, 20, 30, 46, 39, 69, 82, 48, 65, 99, 75, 15 ,49, 27))
>
> observation <- data.frame(Dt = c(as.Date("2007-01-31"), as.Date("2007-02-28"), as.Date("2007-03-31")),
obs = c(30,49,57))
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有:
ggplot() +
geom_boxplot(data = forecasts,
aes(x = as.factor(Date), y = value,
group = interaction(Date, f_type), fill = f_type)) +
geom_line(data = observations,
aes(x = …Run Code Online (Sandbox Code Playgroud)