data <- scan(what = list(strain="",mating=0,sample=0,weight=0), multi.line=F) USDA 1 1 305 USDA 1 2 300 USDA 2 1 376 USDA 2 2 363 USDA 2 3 389 USDA 3 1 282 USDA 4 1 309 USDA 4 2 321 USDA 5 1 354 USDA 5 2 308 USDA 5 3 327 USDA 6 1 330 Field 7 1 280 Field 8 1 311 Field 8 2 349 Field 8 3 291 Field 8 4 286 Field 9 1 377 Field 9 2 342 Field 10 1 346 Field 10 2 340 Field 10 3 347 Field 11 1 360 Field 12 1 359 Field 12 2 299 Resistant 13 1 273 Resistant 13 2 276 Resistant 14 1 272 Resistant 14 2 253 Resistant 15 1 315 Resistant 15 2 262 Resistant 15 3 297 Resistant 16 1 323 Resistant 17 1 252 Resistant 18 1 319 Resistant 18 2 298 data larvae <- data.frame(data) rm(data) larvae$strain <- as.factor(larvae$strain) larvae$mating <- as.factor(larvae$mating) larvae$sample <- as.factor(larvae$sample) aov(weight~strain+Error(strain/mating/sample),data=larvae)