On 7/13/2015 6:02 PM, Lida Zeighami wrote:
Hi Dan,

Thanks for reply,
Sorry the format of matrix is ruiend!
Yes, this matrix is 6×6 but my orginal matrix is so biger than this!!

No, I don't think so your code do that for me!
I want to remove the columns which the sum of their values are equal to
zero!

On Jul 13, 2015 5:31 PM, "Daniel Nordlund" <djnordl...@frontier.com
<mailto:djnordl...@frontier.com>> wrote:

    On 7/13/2015 3:01 PM, Lida Zeighami wrote:

        Hi there,

        I have a matrix which its elements are 0, 1,2,NA
        I want to remove the columns which the colsums are equal to 0 or
        NA and
        drop these columns from the original matrix and create the new
        matrix for
        the nonzero and NA value?
           (I think I have consider na.rm=True and remove the colums
        with colsum=0,
           because if I consider na.rm=False all the values of my
        colsums get NA)

        this is my matrix format:

        mat[1:5,1:5]

                     1:110590170    1:110888172     1:110906406
          1:110993854
           1:110996710   1:111144756
        A05363           0                        0                     0
                  0                         NA                     0
        A05370           0                        0                     0
                  0                         0                     NA
        A05380           1
                   NA                   2                  0
               NA                     0
        A05397           0                        0
        0                  1                         0
              2
        A05400           2                        0                     0
                    0                         0                        0
        A05426           0
        0                     NA               0
        0                        0



        summat <-  colSums(mat,na.rm = TRUE)

            head(summat)

                                  [,1]
        1:110590170     3
        1:110888172     0
        1:110906406      2
        1:110993854     1
        1:110996710     0
        1:111144756     2

           The 2nd and 5th columns have colsum=0 so I Ishould remove
        them from the
        met and keep the rest of columns in  another matrix.

        my out put should be like below:

        metnonzero

                 1:110590170         1:110906406          1:110993854
            1:111144756
        A05363           0                          0
        0                                   0
        A05370           0                          0
        0                                  NA
        A05380           1                          2
        0                                   0
        A05397           0
        0                  1                                   2
        A05400           2                          0
        0                                   0
        A05426           0                          NA
        0                                   0

        would you please let me know how can I do that?

        Many thanks,
        Lid


    First, you matrix appears to be 6x6.  That being said, does this get
    you what you want?

    mat[, -which(summat[,1] ]


    Dan

    --
    Daniel Nordlund
    Bothell, WA USA


Lida,

I seem to have cut-and-pasted something very badly, and for that I apologize. Here is a revised version:

mat <- structure(c(0L, 0L, 1L, 0L, 2L, 0L, 0L, 0L, NA, 0L, 0L, 0L, 0L,
0L, 2L, 0L, 0L, NA, 0L, 0L, 0L, 1L, 0L, 0L, NA, 0L, NA, 0L, 0L,
0L, 0L, NA, 0L, 2L, 0L, 0L), .Dim = c(6L, 6L), .Dimnames = list(
c("A05363", "A05370", "A05380", "A05397", "A05400", "A05426"), c("X1.110590170", "X1.110888172", "X1.110906406", "X1.110993854", "X1.110996710", "X1.111144756")))
summat <- colSums(mat,na.rm = TRUE)
mat[,-which(summat==0)]
       X1.110590170 X1.110906406 X1.110993854 X1.111144756
A05363            0            0            0            0
A05370            0            0            0           NA
A05380            1            2            0            0
A05397            0            0            1            2
A05400            2            0            0            0
A05426            0           NA            0            0
>

Hope this is more helpful,

Dan

--
Daniel Nordlund
Bothell, WA USA

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to