hithit168
2012-Feb-13 00:05 UTC
[R] Error in apply(x2, 1, diff) : dim(X) must have a positive length
Anyone knows hat might be the cause of this error? Thanks for any help!>library(MASS) > dif.mns = function(x2,tr1=.2,tr2=.3){+ #generates four different 'means' using + #difference scores from x2, an n x 2 matrix + #for use w/ bootstrap comparisons + diffs = apply(x2,1,diff) + mn1=mean(diffs) + mn2=mean(diffs,tr=.2) + mn3=mean(diffs,tr=.3) + mn4=median(diffs) + mns=c(mn1,mn2,mn3,mn4) + list(mnds=round(mns,3)) }> dif.mns(shoes)Error in apply(x2, 1, diff) : dim(X) must have a positive length -- View this message in context: http://r.789695.n4.nabble.com/Error-in-apply-x2-1-diff-dim-X-must-have-a-positive-length-tp4382435p4382435.html Sent from the R help mailing list archive at Nabble.com.
David Winsemius
2012-Feb-13 01:14 UTC
[R] Error in apply(x2, 1, diff) : dim(X) must have a positive length
On Feb 12, 2012, at 7:05 PM, hithit168 wrote:> Anyone knows hat might be the cause of this error? Thanks for any > help! > >> library(MASS) >> dif.mns = function(x2,tr1=.2,tr2=.3){ > + #generates four different 'means' using > + #difference scores from x2, an n x 2 matrix > + #for use w/ bootstrap comparisons > + diffs = apply(x2,1,diff) > + mn1=mean(diffs) > + mn2=mean(diffs,tr=.2) > + mn3=mean(diffs,tr=.3) > + mn4=median(diffs) > + mns=c(mn1,mn2,mn3,mn4) > + list(mnds=round(mns,3)) } > >> dif.mns(shoes) > Error in apply(x2, 1, diff) : dim(X) must have a positive length >You have given apply a list. -- David Winsemius, MD Heritage Laboratories West Hartford, CT
hithit168
2012-Feb-13 15:34 UTC
[R] Error in apply(x2, 1, diff) : dim(X) must have a positive length
Thank you for your help, David. I was trying to run bootrapping on the dataset "shoes" from MASS package. But I still have some problem here.> as.matrix(data.frame(shoes),nrows=10,ncols=2,byrow=T)A B [1,] 13.2 14.0 [2,] 8.2 8.8 [3,] 10.9 11.2 [4,] 14.3 14.2 [5,] 10.7 11.8 [6,] 6.6 6.4 [7,] 9.5 9.8 [8,] 10.8 11.3 [9,] 8.8 9.3 [10,] 13.3 13.6> y=as.matrix(data.frame(shoes),nrows=10,ncols=2,byrow=T) > class(y)[1] "matrix"> apply(y,1,diff)[1] 0.8 0.6 0.3 -0.1 1.1 -0.2 0.3 0.5 0.5 0.3> dif.mns <- function(x2,tr1=.1,tr2=.2){+ diffs=apply(x2,1,diff) + mn1=mean(diffs) + mn2=mean(diffs,tr=.1) + mn3=mean(diffs,tr=.2) + mn4=median(diffs) + mns=c(mn1,mn2,mn3,mn4) + list(mnds=round(mns,3))}> dif.mns(y,tr1=.1,tr2=.2)$mnds [1] 0.410 0.400 0.417 0.400> bootstrap(y,nboot=1000,theta=dif.mns)Error in apply(x2, 1, diff) : dim(X) must have a positive length I am not sure what I am doing wrong. When I run apply(y,1,diff) I am able to get output, and when I run dif.mns with just the original dataset, I am also able to get output. -- View this message in context: http://r.789695.n4.nabble.com/Error-in-apply-x2-1-diff-dim-X-must-have-a-positive-length-tp4382435p4384129.html Sent from the R help mailing list archive at Nabble.com.