[R] dimension trouble for a matrix

Steve Lianoglou mailinglist.honeypot at gmail.com
Thu Jul 23 20:29:04 CEST 2009


Hi Erin,

On Jul 23, 2009, at 2:12 PM, Erin Hodgess wrote:

> Dear R People:
>
> I'm having trouble with something that should be very simple.
>
> I'm setting up a matrix outside of a loop and writing items into it
> during the loop.
>
> Here is the output:
>
>> glob3b("sites.info")
> dim 27 3
> [1] "/raid1/osg-app"
> Error in xy[i, ] : incorrect number of dimensions
>
>
> Here is the function:
>> glob3b
> function(xx) {
>      x.df <- read.table(xx,header=FALSE,as.is=TRUE,sep="\t")
> n1 <- nrow(x.df)
> xy <- matrix(rep("",n1*3),nrow=n1,ncol=3)
>   cat("dim",dim(xy),"\n")
> for(i in 1:n1) {
>        xz <- paste("globus-job-run ",x.df[i,2]," /bin/sh -c 'echo  
> $OSG_APP'",
> 	   sep="")
> 	xw <- system(xz,intern=TRUE)
> 	if(length(xw)>0) {
> 	xy[i,1:2] <- x.df[i,1:2]
> 	print(xw)
> 	cat(i,xy[i,],"\n")
> 	cat(i,length(xw),dim(xw),"\n")
> 	xy[i,3] <- xw	
> 	}
> }
> 	return(xy)
> }

This is somehow hard for me to parse, but a few comments:

1. The object returned from your `system` call (xw) will be a  
character vector, calling dim(xw) will return NULL (doesn't look like  
that matters here, just sayin').

2. xw maybe of length > 1, in which case your final call `xy[,3] <-  
xw` is likely tripping you up (try: `xy[,3] <- xw[1]`.

That said, I expect some of the output from your calls to "cat" to be  
shown, but I'm not seeing it in the output you pasted.

Other randomness:

xy <- matrix(rep("",n1*3),nrow=n1,ncol=3)

can be:

xy <- matrix("", nrow=n1, ncol=3)


Also, are you sure you want to store this in a matrix? The fact that  
you want to save your `xw` var (which can be of length > 1) suggests  
to me that you might want to be stuffing whatever-it-is you're saving  
into a list of lists structure instead ... just a thought.

-steve

--
Steve Lianoglou
Graduate Student: Physiology, Biophysics and Systems Biology
Weill Medical College of Cornell University

Contact Info: http://cbio.mskcc.org/~lianos/contact




More information about the R-help mailing list