[R] extracting rows and columns from a big matrix

jim holtman jholtman at gmail.com
Mon Jul 16 13:47:44 CEST 2012


It sounds like you have a problem with your syntax: you are missing a
quote or a parentheses.  Now is the time to learn "debugging 101";
start by partitioning the problem.  First put the column names in an
object, and then split it in half and see if it works.  See which half
has the problem.  The reason that you are getting the "+" prompt is
that R thinks your expression is incomplete.  So just post the
expression you are using on the 'select' parameter and see if it is
parsable.

On Mon, Jul 16, 2012 at 6:49 AM, A J <anxusgo at hotmail.com> wrote:
>
> Thank you very much to everybody for your fast respones.
>
> All your solutions are working well, but I keep with the same problem. When I use whatever of your proposals with a small set of colums (and/or rows), this work, but when I use the whole set of columns (and/or rows) comprising around 2000 columns, the system don't return me the submatrix specified and prompt sign ">" is replaced by "+" one at the end of the console. May this be due to a limitation in subsetting matrices?
>
> This is an example code working and using only columns:
>
> m<-read.table("C:/backup/Rfiles/sym_matrix_cos.csv", header=T)
>
> o<-as.matrix(m[(select=c("X12002", "X12027", "X12054", "X12084", "X12085", "X12115", "X12129", "X12139", "X12195", "X12223", "X12295", "X12327", "X12356", "X12474", "X12487", "X12491", "X12520", "X12570", "X12600", "X12616", "X12626", "X12629", "X12634", "X12669", "X12685", "X12748", "X12759", "X12766", "X12789", "X12793", "X12814", "X12824", "X12892", "X12897", "X12909", "X12932", "X12959", "X12995", "X13018", "X13039", "X13134", "X13138", "X13162", "X13173", "X13236", "X13243", "X13351", "X13410", "X13452", "X13474", "X13475", "X13486", "X13518", "X13574", "X13586", "X13588"))])
>>
>
> However, when I use the same code introducing the total number of columns (around 2000) it's not working.
>
> I have checked all  labels several times in order not to commit mistakes. For this reason I have copied and pasted all labels from a database to a spreadsheet where I have added all quotes dragging them from the first cell to last one (not to miss quotes). Really I don't have any idea about the reason which R permits to apply this code taking 56 columns (as in example above) and doesn't permit to do it taking around 2000 columns. If you have any suggestions, please, let me know.
>
> Thanks to everybody again.
>
> Best,
>
> AJ
>
>
>> Date: Sun, 15 Jul 2012 19:09:05 -0700
>> From: smartpink111 at yahoo.com
>> Subject: Re: [R] extracting rows and columns from a big matrix
>> To: anxusgo at hotmail.com
>> CC: r-help at r-project.org
>>
>> Hello,
>>
>> In my previous email, I used index to subset the data.  Then, I looked at your code.  I guess you wanted to try the "subset" function to get the same output.
>>
>> Try this:
>> dat1<-read.table(text="
>>   X1 X7 X12 X15 X22 X26 X31 X34 X39 X44 X51
>> X1  1  2   3   4  5  6  7  8  9 10  11
>> X7  11  9  7  5   3  1 10 8 6  4  2
>> X12 3  4  7  8  5   7  2  9  1  3  2
>> X15 9  9  8  4  7  1   1  3  2  5  3
>> X22 6  7  7  4  4  2  9  8  8  1  1
>> X26 3  9  4  8  5  7  6  1  2  3  8
>> X31 1  2  1  3  1  4  1  5  1  6  1
>> X34 6  7  8  5  2  9  5  1  6  8  9
>> X39 4  8  7  4  6  5  1  9  2  7  5
>> X44 2  2  2  8  6  7  9  5  3  7  7
>> X51 9  9  9  6  6  4  8  7  2  1  3
>> ",sep="", header=TRUE)
>>
>> subset(dat1,subset=row.names(dat1)%in% c("X1","X12","X22","X31"),select=c("X1","X12","X22","X31"))
>>     X1 X12 X22 X31
>> X1   1   3   5   7
>> X12  3   7   5   2
>> X22  6   7   4   9
>> X31  1   1   1   1
>>
>> A.K.
>>
>>
>>
>>
>>
>>
>> ----- Original Message -----
>> From: A J <anxusgo at hotmail.com>
>> To: jholtman at gmail.com
>> Cc: r-help at r-project.org
>> Sent: Sunday, July 15, 2012 3:43 PM
>> Subject: Re: [R] extracting rows and columns from a big matrix
>>
>>
>> Sorry so much for mistakes.
>>
>> It was an example code and I commited some mistakes typing it. But meaning the original code is right (I have checked several times) I am not sure about how to solve the problem of extracting columns and rows using labels from a squared matrix. I have enclosed a text file with the idea in order to understand it better.
>>
>> Thanks again, and sorry for the inconvenience.
>>
>> Best,
>>
>> AJ
>>
>>
>>
>> > Date: Sun, 15 Jul 2012 14:53:47 -0400
>> > Subject: Re: [R] extracting rows and columns from a big matrix
>> > From: jholtman at gmail.com
>> > To: anxusgo at hotmail.com
>> > CC: r-help at r-project.org
>> >
>> > For a start, you are missing a quote and a parenthese on the
>> > statement; probably should be: (another quote was also missing)
>> >
>> > n<-subset(m, select=c("X1", "X7", "X12","X15", "X22", "X26", "X31",
>> > "X34", "X39", "X44", "X51", "X58"))
>> >
>> > Not sure what you want with the rownames; an example would help and
>> > post with 'dput'.
>> >
>> > On Sun, Jul 15, 2012 at 2:47 PM, A J <anxusgo at hotmail.com> wrote:
>> > >
>> > > Hi there and thanks in advance.
>> > >
>> > > I have a large symmetrical matrix stored in a text file. After load in R I would like to extract the same number of columns and rows (symmetrical submatrix) using their labels.
>> > >
>> > > I have tried this code in order to extract columns, but R console gives me the "+" sign at the end of the code, pointing out incomplete command, so it is not working:
>> > >
>> > > m<-read.table("C:/backup/symmetrical.csv")
>> > >
>> > > n<-subset(m, select=c("X1", "X7", "X12", X15", "X22", "X26", "X31", "X34", "X39", "X44", "x51", "X58)
>> > >
>> > > Therefore, I have no tried with row names yet.
>> > >
>> > > Any suggestions? Sorry for the inconvenience. I have read some information about this but always have the same problem with "+" and I do not have any idea to follow.
>> > >
>> > > Best,
>> > >
>> > > AJ
>> > >
>> > >
>> > >
>> > >
>> > >         [[alternative HTML version deleted]]
>> > >
>> > > ______________________________________________
>> > > R-help at 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.
>> >
>> >
>> >
>> > --
>> > Jim Holtman
>> > Data Munger Guru
>> >
>> > What is the problem that you are trying to solve?
>> > Tell me what you want to do, not how you want to do it.
>>
>> ______________________________________________
>> R-help at 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]]
>
> ______________________________________________
> R-help at 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.



-- 
Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.



More information about the R-help mailing list