코드는 바쁜 업무를하고있다. 당신은 벡터 또는 목록을 사용했을 것이다과 같이 (항상 낫다 사전 할당) : 그것은에 대한 list
에서 모든 테스트 "결과 개체를"저장된다는 점에서
이
res <- replicate(9, NULL)
for (i in 1:9) {
x <- themeData[themeData$level == i, ]
y <- noThemeData[noThemeData$level == i, ]
res[[i]] <- t.test(x$startTime,y$startTime,
alternative = "less")
}
res[[2]]
이 "충분"할 수있다 나중에 처리/소비. 약간 더 나은 방법은 *apply
함수 중 하나를 사용하는 것입니다. 내가 생각하는 처음 두 가지는 여기에 직접 적용 할 수 있습니다 (lapply
, sapply(..., simplify=FALSE)
)는 솔직하게 어느 쪽이든 선택할 수있는 다양한 사소한 장점이 있습니다. (여기와는 달리) 검사 시간이 오래 걸릴 경우
res <- lapply(c(4, 6, 8), function(thiscyl) {
am0 <- subset(mtcars, am == 0 & cyl == thiscyl)
am1 <- subset(mtcars, am == 1 & cyl == thiscyl)
t.test(am0$mpg, am1$mpg)
})
이 특히 도움이됩니다 : 당신이 테스트 을 수행하고 모델를 유지, 그래서 수 있도록 테스트를 다시 실행하지 않고 결과에 많은 것들 .
sapply(res, `[`, "p.value")
# $p.value
# [1] 0.01801712
# $p.value
# [1] 0.187123
# $p.value
# [1] 0.7038727
이상의 간결 :
sapply(res, `[[`, "p.value")
# [1] 0.01801712 0.18712303 0.70387268
또 다른 예를 들어, 신뢰 구간, 매트릭스 :
t(sapply(res, `[[`, "conf.int"))
# [,1] [,2]
# [1,] -9.8 -1.117892
# [2,] -3.916068 1.032735
# [3,] -2.339549 1.639549
당신이 할 수있는 예를 들어, 당신은 단지 P-값을 원했다 예를 들어 res[[2]]
과 같이 하나의 모델을 항상보아야하지만 모두 볼 필요가 있다면 res
을 사용하고 전체 영역을 볼 수 있습니다.
res[[2]]
# Welch Two Sample t-test
# data: am0$mpg and am1$mpg
# t = -1.5606, df = 4.4055, p-value = 0.1871
# alternative hypothesis: true difference in means is not equal to 0
# 95 percent confidence interval:
# -3.916068 1.032735
# sample estimates:
# mean of x mean of y
# 19.12500 20.56667
지금은 루프에서 아무 것도하지 않습니다. 결과를 인쇄하고 싶습니까? 그런 다음 루프에서 이렇게합니다 :'print (t.test (...))' – MrFlick