У меня есть два больших набора данных, которые я прочитал в R. Для простоты рассмотрим следующее:
##Data set 1
x = c("2005", "2006", "2007", "2008", "2009", "2010")
y = c(1,2,4,6,4,3)
##Data set 2
##Shorter than D2. Missing 2005
x1 = c( "2006", "2007", "2008", "2009", "2010")
y1 = c(20,40,60,50,29)
Я хочу построить оба набора данных в виде линейных графиков с двойной осью Y. В идеале построение графики должно выглядеть так:
plot(x, y, type = "o", col = "red")
par(new = TRUE)
plot(x, y1, type = "o", col = "blue",
xaxt = "n", yaxt = "n", xlab = "", ylab = "")
axis(4)
Но, конечно, x
any y1
не одного размера, поэтому я получаю сообщение об ошибке. Я пробовал
plot(x1, y1, type = "o", col = "blue",
xaxt = "n", yaxt = "n", xlab = "", ylab = "")
но тогда y1
просто растягивается, чтобы покрыть всю длину.
В этом простом случае я мог бы просто добавить пустую строку Y1
, чтобы покрыть недостающие данные 2005 года, но это не практичное решение в моих реальных данных. Могу ли я в любом случае сказать R, чтобы они совместили два набора данных соответственно?
Кроме того, я бы предпочел использовать gplots, потому что мне нравится простая возможность компенсировать мои ошибки. Код может выглядеть примерно так
SE = c(.20,.40,.60,.50,.29)
SE1 = c(.20,.40,.60,.50,.29)
offset = .08
plotCI(x = x, y = y, uiw = SE, type = "o",col = "red")
par(new = TRUE)
plotCI(x = (x1) + offset, y = y1, type = "o", uiw = SE1, col = "blue",
xaxt = "n", yaxt = "n", xlab = "", ylab = "")
axis(4)