평균을 계산하고 싶습니다.mean()과 mean (aggregate())이 다른 결과를 반환하는 이유는 무엇입니까?
# sample data
Nr <- c(1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
dph <- c(3.125000, 6.694737, 4.310680, 11.693735, 103.882353, 11.000000, 7.333333, 20.352941, 5.230769, NA, 4.615385, 47.555556, 2.941176, 18.956522, 44.320000, 28.500000, NA, 10.470588, 19.000000, 25.818182, 43.216783, 51.555556, 8.375000, 6.917647, 9.375000, 5.647059, 4.533333, 27.428571, 14.428571, NA, 1.600000, 5.764706, 4.705882, 55.272727, 2.117647, 30.888889, 41.222222, 23.444444, 2.428571, 6.200000, 17.076923, 21.280000, 40.829268, 14.500000, 6.250000, NA, 15.040000, 5.687204, 2.400000, NA, 26.375000, 18.064516, 4.000000, 6.139535, 8.470588, 128.666667, 2.235294, 34.181818, 116.000000, 6.000000, 5.777778, 10.666667, 15.428571, 54.823529, 81.315789, 42.333333)
dat <- data.frame(cbind(Nr = Nr, dph = dph))
# calculate mean directly
mean(dat$dph, na.rm = TRUE)
[1] 23.02403
# aggregate first, then calculate mean
mean(aggregate(dph ~ Nr, dat, mean, na.rm = T)$dph)
[1] 22.11743
# 23.02403 != 22.11743
하는 이유는 두 개의 서로 다른 결과를 얻을 수 있습니까 : 여기에 샘플 데이터와 코드는? 질문에 대한
설명 :
나는 게시물 기준으로 미리 기준을 비교하는 윌 콕슨 테스트를 수행해야합니다. Pre는 3 회의 측정이며 게시는 16입니다. Wilcoxon 테스트에는 동일한 길이의 벡터 두 개가 필요하므로 aggregate
으로 각 환자의 사전 및 사후 평균을 계산하여 동일한 길이의 두 벡터를 만듭니다. 위의 데이터는 사전입니다.
편집 :
환자 NO. 4가 데이터에서 제거되었습니다. 그러나 Nr <- rep(1:22, 3)
을 사용하면 동일한 결과가 반환됩니다.
Nr에 4가 있으면 같은 일이 발생합니까? – lawyeR
@lawyeR 예. (나는'Nr <- rep (1:22, 3)'로 시도했다.) 단지 설명하기 : 환자 번호 4가 데이터에서 제거되었다. –
동일한 결과를 얻을 이유가 없습니다. 'Nr <-c (1, 1, 2, 2)'와'dph <-c (1, 2, 3, NA)'를 고려해보십시오. 어떻게 다른 값을 얻을 수 있는지 알아야합니다. 일반적으로 지구 평균은 "평균의 평균"과 다릅니다. – nicola