r - error when using which.min() with ave() -



r - error when using which.min() with ave() -

i have data, much of na. simplicity, let's looks this:

x = c(na, 3, 4, 3.5, na, na, na, na, 7, 5) bins = c(1, 1, 1, 2, 2, 2, 3, 3, 4, 4)

i'm using ave( ) , which.min( ) minimum value each bin type:

ave(x, segments, fun = which.min)

but error:

error in `split<-.default`(`*tmp*`, g, value = lapply(split(x, g), fun)) : replacement has length 0

the reason happening (i think) because bin # 3 has na values. when rectified, error disappears. utilize function like:

ave(x, segments, fun = function(xx){ if(all(is.na(xx))){ return(na) } else { xx = which.min(xx) return(xx) }} )

but:

1) hacky heck. and

2) which.min(c(na, na, na)) not cause error, nor ave(c(na, na, na), c(1, 1, 1), fun=mean) - what's going on i'm missing?

--> have thought of why error happens / best way around it?

cheers.

r

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -