将两个 Y 轴添加到 xy 图

Adding two Y axes to an xy plot

在 Rstudio 中使用此 data。我需要 运行 ed76lwage76 的简单回归和将 ed76 变成列中每个级别的虚拟变量的饱和回归。然后我需要在 XY 图中绘制两个回归,其中 lwage76 作为 Y 轴,ed76 作为 X 轴。这是我目前所拥有的:

regression <- lm(nlsdata$lwage76~nlsdata$ed76)

predicted <- data.frame(Edu =nlsdata$ed76, Wage = predict(regression))

aggplot <- aggregate(Wage ~ Edu, data=predicted, mean)
xyplot( Wage ~ Edu, data = aggplot, grid = TRUE, type = c("p","l"))

这给了我一个非常好的 XY 图,但现在我需要添加饱和模型的预测值:

satreg <- lm(lwage76 ~ ed76*edu_1 + ed76*edu_2 + ed76*edu_3 + 
             ed76*edu_4 + ed76*edu_5 + ed76*edu_6 + ed76*edu_7 + 
             ed76*edu_8 + ed76*edu_9 + ed76*edu_10 + ed76*edu_11 +
             ed76*edu_12 + ed76*edu_13 + ed76*edu_14 + ed76*edu_15 + 
             ed76*edu_16 + ed76*edu_17, data = nlsdata)

satmodel <- data.frame(Edu =nlsdata$ed76, Wage = predict(satreg))

那么如何将第二个数据集添加到我的图表中呢?

ggplot 中的解决方案:

ggplot(data=predicted, aes(Edu, Wage)) +
  geom_line() +
  geom_point() +
  geom_line(data=satmodel, colour="blue") +
  geom_point(data=satmodel, colour="blue")

或者,您可以标记每个 table 并将它们组合成一个 data.frame。

satmodel <- satmodel %>% mutate(type="sat_model")
predicted <- predicted %>% mutate(type="predicted")

df <- rbind(satmodel, predicted)


ggplot(df, aes(Edu, Wage, colour=type)) + 
    geom_line() + 
    geom_point()