希望这是一个直截了当的问题。我不确定哪里有错误 - 似乎R
在这里不起作用。我重新启动了R
并重现了错误,所以我不确定发生了什么。
问题:我有一些数据,我正在尝试为效果生成一个半正常的图。哼哼,一切都很顺利...除了最重要的效果没有出现在我的半正常情节中:
# load data
dat2 <- read.table("http://www.stat.ucla.edu/~hqxu/stat201A/data/solder2.dat")
# required library
library(faraway)
# rename vars
names(dat2) <- tolower(names(dat2))
# create full model
a1.1 <- aov(defects ~ a + b + c + d + e + f + g + h + a:b + a:e + a:f + a:g + a:h +
b:f + b:g + b:h + c:f + c:g + c:h + d:f + d:g + d:h + e:f + e:g + e:h,data=dat2)
# plot effects
halfnorm(a1.1$coef[-1], nlab= length(a1.1$coef[-1])/3-1, labs= names(a1.1$coef[-1]),
ylab= "abs|Factor Effects|",
main= "Half Normal Plot") + qqline(abs(a1.1$coef[-1]))
正如你所看到的,我的情节缺少效果C.最大的一个。如果您无法重现此错误,请与我们联系。这对我来说似乎很奇怪。
# effects from the model, descending
a1.1$coef[-1][order(abs(a1.1$coef[-1]), decreasing=T)][1:10]
c a e a:h b:f c:f a:f c:g c:h a:g
56.875 -27.500 22.750 13.125 -13.000 -12.750 12.500 12.375 7.375 7.000
编辑正如所料,并在下面说明,这很简单。这是正确的代码:
halfnorm(a1.1$coef[-1], nlab= round(length(a1.1$coef[-1])/3,0), labs= names(a1.1$coef[-1]),
ylab= "abs|Factor Effects|",
main= "Half Normal Plot") + qqline(abs(a1.1$coef[-1]))
答案 0 :(得分:1)
你的nlab值最终不是一个整数。查看代码会给函数带来问题,并且在某些情况下会导致最后一个效果无法获得标签。如果你对值进行舍入或者直接将其设置为整数,则问题就会消失。