我有几个预测变量(v1,v2,v3),想要使用interaction.plot()检查结果变量(结果)之间的相互作用。
我们的想法是以自动化的方式实现这一点(我的#34;真实数据集中有3个以上的变量)。
v1<-c(0,0,1,1,0,0,1,1,1,0))
v2<-c(1,0,0,0,1,0,1,1,1,0)
v3<-c(4,5,2,5,7,3,5,3,2,1)
outcome<-c(1,0,0,1,0,1,1,0,1,0)
df<-data.frame(v1,v2,v3,outcome)
a<-c("v1" , "v2" , "v3")
b<-c("v1" , "v2" , "v3")
par("mar")
par(mar=c(1,1,1,1))
par(mfrow=c(3,3))
for (i in 1:3){
for (j in 1:3){
interaction.plot(df[,a[i]], df[,b[j]], df$outcome)
}
}
现在我想通过插入lab和ylab将变量名称放入图表中:
interaction.plot(df[,a[i]], df[,b[j]], df$outcome, xlab=colnames(df)[i], ylab=colnames(df)[j])
当我运行时,没有任何反应(图表看起来像以前)。
任何提示?
-p
答案 0 :(得分:0)
似乎没有任何事情发生的原因是您将边距设置得太小,因此轴标签没有空间出现。您可以通过在底部和左侧留出更多空间来让它们再次出现:
par(mar=c(5,4,1,1))
par(mfrow=c(3,3))
for (i in 1:3){
for (j in 1:3){
interaction.plot(df[,a[i]], df[,b[j]], df$outcome,
xlab=colnames(df)[i], ylab=colnames(df)[j])
}
}
要在稍微收紧边距时保持轴标签,您还可以使用mgp
参数来播放绘图区域和轴标签之间的间距,但找到正确的平衡似乎很难实现:
par(mar=c(3,3,1,1), mgp = c(1, 0, 0))
par(mfrow=c(3,3))
for (i in 1:3){
for (j in 1:3){
interaction.plot(df[,a[i]], df[,b[j]], df$outcome,
xlab=colnames(df)[i], ylab=colnames(df)[j])
}
}