2
3 개의 변수 (x1, x2, x3)에 대해 3 가지 효과 크기를 계산하고 싶습니다. 다음 데이터 집합이 있다고 가정합니다.데이터 세트의 변수 세트에 대한 3 그룹 간의 효과 크기 계산
set.seed(1234)
data <- data.frame(
dose=factor(c(rep(1,25), rep(2,35), rep(3,40)),
labels = c("low", "middle", "high")),
x1 = rnorm(100, 0, 2),
x2 = rnorm(100, 3, 3),
x3 = rnorm(100, 9, 4)
)
이제 각 처리 조합에 대해 효과 크기를 계산하고 싶습니다. 나는 코헨의 d를 계산하는이 함수를 발견했다.
cohens_d <- function(x, y) {
lx <- length(x)- 1
ly <- length(y)- 1
md <- abs(mean(x) - mean(y))
csd <- lx * var(x) + ly * var(y)
csd <- csd/(lx + ly)
csd <- sqrt(csd)
cd <- md/csd
# Hedges'g
cd*(1-(3/(4*(length(x)+length(y)-9))))
#print(cd)
}
감사합니다.
EDIT 예 :
, I는 하나 개의 변수 (X1)의 3 개 처리 (페어)의 효과의 크기를 계산할 수 이하이다. 이상적으로는, 내 데이터 집합의 모든 변수에 대해 이러한 쌍으로 된 비교를 얻을 수있는 일반적인 방법을 원합니다.
cohens_d(data$x1[data$dose=="low"], data$x1[data$dose=="middle"])
cohens_d(data$x1[data$dose=="low"], data$x1[data$dose=="high"])
cohens_d(data$x1[data$dose=="middle"], data$x1[data$dose=="high"])
것은 내 편집을 참조, 내가 선택한 COLS – Sathish
에 변수의 목록을 변경하면, 모든 42 열 이름에 대한 특정 패턴이 있습니까 예를 들어 그들이 번호입니다 1에서 42까지의 접두사와 x? – Sathish
감사합니다. 실수로 더 일반화 된 코드를 요청한 주석을 삭제했습니다. 나는 당신의 편집이 완벽하다고 믿습니다. 또한,'selected_cols' 대신에'measure.vars = c ('x1', 'x2', 'x3')'를 사용했던 이전 버전에서는'dput (names (data) '모든 것이 더 쉬워진다. –