Dear All, I'm confused why I'm getting NA's in the output from ave() (at the end). Any help would be greatly appreciated. I'm including the data in case that is where the problem lies: > f <- factor(FAMILYID) > bodyfat <- na.omit(data.frame(loessBODYFAT, f)) > bodyfat$loessBODYFAT [1] -8.950153e-01 -9.175285e-01 3.174061e-01 -2.101260e-01 2.534174e-02 [6] 1.846599e-01 8.322865e-01 1.348331e+00 1.241318e+00 1.634000e+00 [11] 1.611048e+00 6.824926e-01 2.346168e+00 2.924673e-01 6.919381e-01 [16] 3.142321e-01 -5.615214e-01 9.196103e-01 -1.290328e+00 -1.798727e+00 [21] -1.011590e-01 7.051146e-01 -1.254440e+00 1.189397e+00 -7.017545e-01 [26] 2.290020e-02 -1.451774e+00 -6.124868e-01 -4.780954e-01 3.237365e+00 [31] 1.595977e+00 5.950309e-01 -4.699706e-01 -2.153001e-01 -3.248170e-01 [36] -5.295042e-01 2.780444e-01 -5.878282e-01 -3.325859e-01 -7.690049e-02 [41] 4.991054e-01 -4.410101e-01 9.133328e-01 1.429758e+00 -8.484772e-01 [46] -1.004829e-01 1.769479e-01 3.892871e-01 7.209969e-01 3.759455e-01 [51] 3.982560e-02 -1.702333e-01 -3.622422e-01 -2.893234e-01 -9.769459e-01 [56] -1.935057e+00 -3.881132e-01 -1.037270e-02 2.561803e-01 3.884395e+00 [61] -2.234557e-01 -6.893120e-01 3.531379e-01 -1.726464e+00 7.136614e-02 [66] -4.278400e-01 -3.756271e-01 5.494344e-02 6.545344e-01 4.999740e-01 [71] 4.911730e-01 -1.296921e-05 3.166220e+00 2.715371e-01 -6.104207e-01 [76] 1.893740e+00 1.031131e+00 -5.917449e-01 -7.442768e-01 2.503388e+00 [81] -4.087622e-01 4.399654e-01 -8.355297e-01 3.964619e-01 2.672100e-01 [86] -3.927630e-01 -1.295004e+00 -1.874215e-01 -9.548985e-01 -1.366311e-01 [91] -1.352021e+00 -9.658552e-01 -1.190914e+00 -1.910233e+00 -7.595405e-02 [96] -1.648916e-01 -1.743877e-01 -1.234058e-01 -1.723277e+00 -7.316183e-01 [101] -8.062482e-01 -8.386729e-02 3.672521e-01 -7.525477e-01 -7.851946e-01 [106] -5.464147e-01 -1.454035e-01 -2.447245e-01 -4.732026e-01 -5.131587e-02 [111] -4.651404e-01 9.230189e-02 9.773851e-01 1.293947e-01 -3.261368e-01 [116] -1.671177e+00 -2.615938e-01 8.152311e-01 1.757506e-01 4.018943e-01 [121] -6.631180e-01 -1.839677e-01 > bodyfat$f [1] 1 1 1 1 1 2 3 3 3 3 3 3 3 3 3 3 4 5 6 6 6 7 7 [24] 7 7 8 9 9 9 9 9 9 9 9 9 9 9 10 10 10 11 11 11 11 12 12 [47] 12 12 13 13 13 14 14 14 15 15 15 15 15 16 16 16 16 16 16 16 16 18 18 [70] 18 18 20 21 21 22 22 22 23 23 23 23 23 25 25 25 30 30 30 31 31 31 31 [93] 35 35 35 35 35 35 37 37 39 39 39 39 39 39 39 39 40 40 44 44 45 45 45 [116] 47 47 47 47 50 50 50 50 Levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 50 > ave(bodyfat$loessBODYFAT, bodyfat$f) [1] -3.359844e-01 -3.359844e-01 -3.359844e-01 -3.359844e-01 -3.359844e-01 [6] 1.846599e-01 1.099428e+00 1.099428e+00 1.099428e+00 1.099428e+00 [11] 1.099428e+00 1.099428e+00 1.099428e+00 1.099428e+00 1.099428e+00 [16] 1.099428e+00 -5.615214e-01 9.196103e-01 -1.063405e+00 -1.063405e+00 [21] -1.063405e+00 -1.542074e-02 -1.542074e-02 -1.542074e-02 -1.542074e-02 [26] 2.290020e-02 1.476790e-01 1.476790e-01 1.476790e-01 1.476790e-01 [31] 1.476790e-01 1.476790e-01 1.476790e-01 1.476790e-01 1.476790e-01 [36] 1.476790e-01 1.476790e-01 -3.324382e-01 -3.324382e-01 -3.324382e-01 [41] 6.002965e-01 6.002965e-01 6.002965e-01 6.002965e-01 -9.568124e-02 [46] -9.568124e-02 -9.568124e-02 -9.568124e-02 3.789227e-01 3.789227e-01 [51] 3.789227e-01 -2.739330e-01 -2.739330e-01 -2.739330e-01 -6.108618e-01 [56] -6.108618e-01 -6.108618e-01 -6.108618e-01 -6.108618e-01 1.082750e-01 [61] 1.082750e-01 1.082750e-01 1.082750e-01 1.082750e-01 1.082750e-01 [66] 1.082750e-01 1.082750e-01 -1.296921e-05 -1.296921e-05 -1.296921e-05 [71] -1.296921e-05 7.714833e-01 2.397139e-01 2.397139e-01 -5.728595e-02 [76] -5.728595e-02 -5.728595e-02 -6.250627e-01 -6.250627e-01 -6.250627e-01 [81] -6.250627e-01 -6.250627e-01 -6.066309e-01 -6.066309e-01 -6.066309e-01 [86] 2.602143e-01 2.602143e-01 2.602143e-01 -2.354473e-01 -2.354473e-01 [91] -2.354473e-01 -2.354473e-01 NA NA NA [96] NA NA NA NA NA [101] NA NA NA NA NA [106] NA NA NA NA NA [111] NA NA NA NA NA [116] NA NA NA NA NA [121] NA NA > Thanks in advance, Edward H. Hagen Institute for Theoretical Biology phone: +49/30 2093-8649 Humboldt-Universit?t zu Berlin fax: +49/30 2093-8801 Invalidenstra?e 43 http://itb.biologie.hu-berlin.de/~hagen 10115 Berlin, Germany
Ed - You seem to have encountered a bug. I can reproduce Ed's difficulty in a completely artificial example in which there are unused levels : tmp <- factor(rep(seq(10), seq(10))) # length(tmp) # [1] 55 ave(seq(50), tmp[-seq(5)]) # gives NA in rows 32-50 I would consider this to be incorrect behavior for the function ave(). For the base package maintainers, I would suggest modifying the definition of ave() so that the line involving as.factor() reads : l[[i]] <- li <- as.factor(l[[i]][,drop=T]) . However, I have not thought through whether ave() could ever be called with a grouping variable of dimension greater than 1, or what consequence that would have for the proposed fix. - tom blackwell - u michigan medical school - ann arbor - On Sat, 27 Sep 2003, Ed Hagen wrote:> I'm confused why I'm getting NA's in the output from ave() (at the end). Any > help would be greatly appreciated. I'm including the data in case that is where > the problem lies: > > > f <- factor(FAMILYID) > > bodyfat <- na.omit(data.frame(loessBODYFAT, f)) > > bodyfat$loessBODYFAT > ... > > bodyfat$f > [1] 1 1 1 1 1 2 3 3 3 3 3 3 3 3 3 3 4 5 6 6 6 7 7 > [24] 7 7 8 9 9 9 9 9 9 9 9 9 9 9 10 10 10 11 11 11 11 12 12 > [47] 12 12 13 13 13 14 14 14 15 15 15 15 15 16 16 16 16 16 16 16 16 18 18 > [70] 18 18 20 21 21 22 22 22 23 23 23 23 23 25 25 25 30 30 30 31 31 31 31 > [93] 35 35 35 35 35 35 37 37 39 39 39 39 39 39 39 39 40 40 44 44 45 45 45 > [116] 47 47 47 47 50 50 50 > 50 Levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 50 > > ave(bodyfat$loessBODYFAT, bodyfat$f) > ... > [81] -6.250627e-01 -6.250627e-01 -6.066309e-01 -6.066309e-01 -6.066309e-01 > [86] 2.602143e-01 2.602143e-01 2.602143e-01 -2.354473e-01 -2.354473e-01 > [91] -2.354473e-01 -2.354473e-01 NA NA NA > [96] NA NA NA NA NA > [101] NA NA NA NA NA > [106] NA NA NA NA NA > [111] NA NA NA NA NA > [116] NA NA NA NA NA > [121] NA NA > > Thanks in advance, > > Edward H. Hagen Institute for Theoretical Biology > phone: +49/30 2093-8649 Humboldt-Universit?t zu Berlin > fax: +49/30 2093-8801 Invalidenstra?e 43 > http://itb.biologie.hu-berlin.de/~hagen 10115 Berlin, Germany