[R] R Error : DATA to MATRIX

David Winsemius dwinsemius at comcast.net
Mon Mar 26 08:21:08 CEST 2012


On Mar 25, 2012, at 2:43 PM, ritwik_r at isical.ac.in wrote:

> Thanks David, your suggestion works fine.....btw I have another
> question......If I set (n,m) little bit large, say (n=20,m=10), R  
> cannot
> handle the large data frame generated through "expand.grid".....Is  
> there
> any way to increase R-memory so that I can tackle large data.frame  
> in R
> ?????

Please read the Posting Guide. After doing so, you may understand why  
you have gotten no responses.

-- 
David.
>
> regards
> ritwik
>
>>
>> On Mar 23, 2012, at 2:53 AM, ritwik_r at isical.ac.in wrote:
>>
>>> Dear Sir/Madam,
>>>
>>> I'm getting a problem with a R-code which converts a data frame to a
>>> matrix.
>>>
>>> It first generate a (m^(n-m) * m) matrix A and then regenerate  
>>> another
>>> matrix B having less dimension than A which satisfy some condition.
>>> Now I
>>> wish to assign each row of B to a vector as individual.
>>>
>>> My problem is when I set any choice of (n,m) except m=1 it works
>>> fine but
>>> setting m=1 I got the error : Error in B[i, ] : incorrect number of
>>> dimensions.
>>>
>>> Moreover if (n,m) is large (say, (20,8)) I got the error : Error:
>>> cannot
>>> allocate vector of size 3.0 Gb. I know this is due to large
>>> dimension of
>>> matrix A. How to solve this problem.
>>>
>>> My code is given below:
>>>
>>> **********************************************************************
>>>
>>> n=5
>>> m=3
>>> R=numeric(0)
>>> # Generate all possible m-tuple ( variables having range 0 to n  )
>>> in a (
>>> m^(n-m) * m ) matrix
>>>
>>> r = expand.grid(rep(list(0:(n-m)), m))
>>>
>>> write.table(r,file="test.txt",row.names=FALSE,col.names=FALSE)
>>>
>>> a= read.table(file="test.txt",sep="",header=FALSE)
>>>
>>> A= data.matrix(a)
>>>
>>> #.........................................................................................
>>>
>>> # Generate matrix whose rowsum = n-m
>>>
>>> meet.crit = apply(A, 1, function(.row) any((sum(.row)) == n- 
>>> m))      #
>>> criteron for being rowsum = n
>>>
>>> cbind(A,  
>>> meet.crit)                                                  #
>>> Checking rowsum = n for each row
>>> -m
>>> B=A[meet.crit,]
>>
>> At this point the default behavior of the "[" function is to return a
>> vector rather than a matrix. You need to add drop=FALSE as an
>> additional argument. Read the help page for ?"[".
>>
>>                                  #
>>> Generate matrix
>>>
>>> #.........................................................................................
>>>
>>>
>>> for(i in 1:choose(n-1,m-1)){
>>> R=B[i,]
>>> }
>>>
>>> ***************************************************************************
>>>
>>> Can you please help me how to get rid of these errors. Thanking  
>>> you in
>>> advance.
>>>
>>> Regards
>>>
>>> Ritwik Bhattacharya
>>>
>>>
>>> Senior Research Fellow
>>> SQC & OR UNIT, KOLKATA
>>> INDIAN STATISTICAL INSTITUTE
>>
>> --
>>
>> David Winsemius, MD
>> West Hartford, CT
>>
>> This mail is scanned by Ironport
>>
>>
>
>
> This mail is scanned by Ironport
>

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list