How do I add a trendline to two variables, two graphs of the y-axis in r?

I have this dataset

structure(list(Year = 1988:2012, A = c(1415.6, 1345.3, 1321.7, 
1234.5, 1567.8, 1476.6, 1610.1, 1422.6, 1209.1, 1249.3, 1377.5, 
1525.7, 1683.7, 1500.1, 1565.3, 1737.4, 1321, 1477.8, 1642, 1608.1, 
1427.8, 1608.2, 1404.4, 1688.3, 1795.4), B = c(76, 359, 299, 
215, 177, 3112, 12047, 26307, 27173, 6514, 4190, 1776, 1708, 
1335, 1012, 8170, 4306, 3716, 23531.986, 34803.012, 22758.7645, 
29140.16304, 36369.3619, 56975.62256, 33516.95628)), .Names = c("Year", 
"A", "B"), class = "data.frame", row.names = c(NA, -25L))

      

and I created this graph using the function twoord.plot

:

install.packages("plotrix")
library(plotrix)

twoord.plot(Example$Year, Example$B, Example$Year, Example$A, xlim = range(1988:2012))
abline(lm(B ~ Year, data = Example), col="black")
abline(lm(A ~ Year, data = Example), col="red")

      

enter image description here

How am I supposed to tell the second trendline (red) that it belongs to the y-axis of the y-axis? Can this be done in r?

+3


source to share


1 answer


I am assuming that R only knows one scale for x and one for y. If you look at the function twoord.plot

, you can see that it adds the right-hand portion using a scale operation:

points(rx, ry * ymult + yoff, col = rcol, pch = rpch, 
    type = type[2], ...)

      



I assume you need to do the same to add extra lines. Just by selecting some lines in the function, it should be ( ly = Example$B

and ry = Example$A

):

lylim <- range(ly, na.rm = TRUE)
rylim <- range(ry, na.rm = TRUE)
ymult <- diff(lylim)/diff(rylim)
yoff <- lylim[1] - rylim[1] * ymult
coef = lm(A ~ Year, data = Example)$coefficients
abline(a = coef[1]*ymult + yoff, b = coef[2]*ymult, col="red")

      

+2


source







All Articles