bugfix> r > 投稿

を含むデータベースで線形回帰を行いましたグループ(1 =煙、2 =制御) 、性別(1 = m、2 = f) のような従属変数重量。グループと性別の相互作用をプロットで見たいです。する必要があるサイズを変更する 軸のラベルの、それは par() で動作しません 。コードは次のとおりです。

lin <- lm(weight ~ group + gender + group:gender, data=data)
par(cex.lab = 2, cex.axis = 2)
library(effects)
plot(effect("group:gender",lin,,list(gender=c(1,2))),multiline=T)

サイズは変わりません。そして、このように軸を削除したい場合:

plot(effect("group:gender",lin,,list(gender=c(1,2))),multiline=T,axes=FALSE)

それは私にこのエラーを与えます:

$ operator is invalid for atomic vectors

これを解決する方法は?

回答 1 件
  • なぜそれが起こっているのか分かりませんが、クラス(効果)は「eff」であり、プロットを適切にレンダリングするのに適していない可能性があり、このオブジェクトをdata.frameに変換してから par  あなたの仕事をする機能。

    あなたの質問に答えます: ここで、異なるオプションを使用してparオプションを変更すると、前述のグラフのようにフォントサイズが変更されます。

    あなたはこれを行うことができます:

    library(effects)
    lin <- lm(mpg ~ cyl + am + am:cyl, data=mtcars)
    par(cex.lab=1.2, cex.axis=1.2, cex.main=1.2, cex.sub=1.2) #Here you can check, the par options, if you change it the font will incrase or decrese
    effect1 <- data.frame(effect("cyl:am",lin,,list(cyl=c(4,6,8))))
    effects <- effect1[,c("cyl","am", "fit")] ##Keeping only the required columns
    
    

    cyl、am、fitの3つすべてのオブジェクトを使用して、エフェクトを使用してプロットを行うことができます。ただし、ラインが結合されるため、ベースプロットRのggplotのグループのような機能は認識していません。それ。

    xvals <- split(effects$am,effects$cyl) #split x-axis basis cyl
    yvals <- split(effects$fit,effects$cyl) #split y-axis basis cyl
    plot(1:max(unlist(xvals)),xlim = c(0,max(unlist(xvals))),ylim=(c(0,max(unlist(yvals)))),type="n", main="plot b/w mpg, am * cyl",  
         xlab="am", ylab="mpg") #adding header, labels and xlim and ylim to the graphs
    Map(lines,xvals,yvals,col=c("red","blue","black"),pch=1:2,type="o") #plotting the objects using Map
    legend("bottomright", legend=c("8", "6", "4"),
           col=c("red", "blue", "black"), lty=1:2, cex=0.8) #adding the legend
    
    

    出力

    parオプションが1.2に固定されている

    parオプションが1.5に固定されている場合:

あなたの答え