
 Is there a way to get the coordinate list vectors back from the matrix a without any prior knowledge?

a

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    0
[2,]    2    1    0    0    0
[3,]    0    0    3    0    1

 


 How to get:

r = c(1,2,2,3,3)
c = c(4,1,2,3,5)
v = c(1,2,1,3,1)

 

-----Original Message-----
From: Phil Spector <spector@stat.berkeley.edu>
To: ericksonsm@aol.com
Cc: r-help@r-project.org
Sent: Thu, Aug 19, 2010 7:35 pm
Subject: Re: [R] Converting sparse matrix to data.frame in Matrix package


This seems to work, although it eliminates the sparseness of the storage: 
 
> dimnames(a) = list(NULL,letters[1:5]) 
> as.data.frame(as.matrix(a)) 
  a b c d e 
1 0 0 0 1 0 
2 2 1 0 0 0 
3 0 0 3 0 1 
 
                   - Phil Spector 
                    Statistical Computing Facility 
                    Department of Statistics 
                    UC Berkeley 
                    spector@stat.berkeley.edu 
 
On Thu, 19 Aug 2010, ericksonsm@aol.com wrote: 
 
> 
> 
> 
> I am able to create a coordinate list sparse matrix this way: 
> 
> r = c(1,2,2,3,3) 
> c = c(4,1,2,3,5) 
> v = c(1,2,1,3,1) 
> 
> a = sparseMatrix(i=r,j=c,x=v) 
> 
> However, this results in an object that looks like this: 
> 
> a 
> 
> 3 x 5 sparse Matrix of class "dgCMatrix" 
> 
> [1,] . . . 1 . 
> [2,] 2 1 . . . 
> [3,] . . 3 . 1 
> 
> How do I convert this object into a data.frame that would look like this: 
> 
> data.frame(a=c(0,2,0),b=c(0,1,0),c=c(0,0,3),d=c(1,0,0),e=c(0,0,1)) 
> 
>   a b c d e 
> 1 0 0 0 1 0 
> 2 2 1 0 0 0 
> 3 0 0 3 0 1 
> 
> 
> 
>   [[alternative HTML version deleted]] 
> 
> ______________________________________________ 
> R-help@r-project.org mailing list 
> https://stat.ethz.ch/mailman/listinfo/r-help 
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html 
> and provide commented, minimal, self-contained, reproducible code. 
> 

 

	[[alternative HTML version deleted]]

