我有以下data.frame
> str(luc) 'data.frame': 19 obs. of 4 variables: $ driver : Factor w/ 16 levels "nr #1","nr #10",..: 1 9 10 11 12 13 14 15 16 2 ... $ position: Factor w/ 16 levels "pos #1","pos #10",..: 1 9 10 11 12 13 14 15 16 2 ... $ ate : num 2 2 2 2 2 2 2 2 2 1 ... $ i2 : num 0.00656 0.00676 0.00679 0.00681 0.00666 0.00657 0.00674 0.00676 0.00682 0.00684 ...
> luc driver position ate i2 1 nr #1 pos #1 2 0.00656 2 nr #2 pos #2 2 0.00676 3 nr #3 pos #3 2 0.00679 4 nr #4 pos #4 2 0.00681 5 nr #5 pos #5 2 0.00666 6 nr #6 pos #6 2 0.00657 7 nr #7 pos #7 2 0.00674 8 nr #8 pos #8 2 0.00676 9 nr #9 pos #9 2 0.00682 10 nr #10 pos #10 1 0.00684 11 nr #11 pos #11 2 0.00671 12 nr #12 pos #12 2 0.00673 13 nr #13 pos #13 2 0.00660 14 nr #14 pos #14 2 0.00672 15 nr #15 pos #15 2 0.00673 16 nr #16 pos #16 2 0.00654 17 nr #7 pos #1 2 0.00678 18 nr #3 pos #2 2 0.00680 19 nr #1 pos #3 2 0.00658
非常接近SixSigma软件包提供的 ss.data.rr 。
使用ss.data.rr调用ss.rr可以正常工作,但是我尝试使用luc时始终遇到错误:
> ss.rr(var=i2, appr=driver, part=ate, data=luc) Error in ``row.names<-.data.frame``(`*tmp*`, value = value) : invalid 'row.names' length
如何摆脱它?
以下完整代码;我从更大的数据集中创建data.frame(luc)。
library("SixSigma")
luc <- subset(cf, cf$CntrlVal == 85)
luc <- data.frame(cbind(luc$DriverNumber, luc$Position, luc$ATE, luc$I2))
colnames(luc)<-c("driver", "position", "ate", "i2")
luc$position <- as.factor(paste0("pos #", luc$position))
luc$driver<- as.factor(paste0("nr #", luc$driver))
luc[10, c("ate")] <- 1
luc<-luc[-c(20:48), ]
ss.rr(var=i2, appr=driver, part=ate, data=luc)
ss.rr(var=i2, appr=driver, part=position, data=luc)
答案 0 :(得分:1)
Gage R&amp; R需要重复测量才能评估测量系统。显然,数据集仅包含每个因子组合的一个观察值(如果有的话)。例如,ss.data.rr data.frame对每个运算符的每个原型有3个度量值:
table(ss.data.rr$prototype, ss.data.rr$operator)
op #1 op #2 op #3
prot #1 3 3 3
prot #2 3 3 3
prot #3 3 3 3
错误是由于anova表中没有“Residuals”行(变体的可重复性组件)。我将在SixSigma
的下一个版本中编写信息错误。