 # Ode ggplot Error

``````library(deSolve)

CCHFSimpleSIR = function(t, x, params)
{
# get SIR values
SH = x
EH = x
IH = x
RH = x
ST = x
ET = x
IT = x

# Beta values
betaHH = params["betaHH"]
betaTH = params["betaTH"]
betaTTV = params["betaTTV"]
betaTTH = params["betaTTH"]

gamma = params["gamma"]

muH = params["muH"]
muT = params["muT"]

# birth rates
piH  = params["piH"]
piT = params["piT"]

deltaH1 = params["deltaH1"]
deltaT = params["deltaT"]

# recovery rate
alpha = params["alpha"]

#computations

dSHdt = piH - (betaHH * SH * IH) - (betaTH * SH * IT) - (muH * SH)
dEHdt = (betaHH * SH * IH) + (betaTH * SH * IT) - ((deltaH1 + muH) * EH)
dIHdt = (deltaH1 * EH) - (alpha + gamma + muH) * IH
dRHdt = (alpha * IH) - (muH * RH)
dSTdt = piT - (betaTTV * ST * IT) - (betaTTH * ST * IT) - (muT * ST)
dETdt = (betaTTV * ST * IT) + (betaTTH * ST * IT) - ((deltaT + muT) * ET)
dITdt = (deltaT * ET) - (muT * IT)

# return results
list(c(dSHdt, dEHdt, dIHdt, dRHdt, dSTdt, dETdt, dITdt))
}

params = c(betaHH = .2, betaTH = 1.2, betaTTV = .4, betaTTH = 4, gamma = .15, muH = (1/79 * 365), muT = (1/2 * 365), piH = 18.5, piT = 100, deltaH1 = 1/2, deltaT = 1/1, alpha = 1/15)

# time to start solution
time = seq(from = 0, to = 25, by = 1)

#initialize initial conditions
initialX = c(SH = 999, EH = 0, IH = 0, RH = 0, ST = 2000, ET = 0, IT = 2)

library(tidyverse)
data = ode(y = initialX, times = time, func = CCHFSimpleSIR, parms = params)%>%
as.data.frame()

# graph data
ggplot(data, aes(x=time, y= initialX)) + geom_line()

``````

Hi! This is my first time programming in R and I am trying to simulate an SIR model. I am getting an error on my last line " Aesthetics must be either length 1 or the same as the data (26): y". If anyone could help me understand this error that would be great thank you!

``````data2 <- pivot_longer(data=data,
cols=-time,
names_to = "initialX",
values_to="value")

ggplot(data2, aes(x=time, y= value,color=initialX)) + geom_line(lty="dashed")``````

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

Thank you! If it isn't a hassle could you explain your code a little bit? I'm new to R and still trying to understand everything especially graphing I have been having trouble with. Thank you so much.

pivot_longer transforms the structure of your dataframe (lengthening it).