subsetting matrix with id from another matrix

前端 未结 4 1141
闹比i
闹比i 2021-01-24 09:43

I would like to subset the data of one matrix using data in a second matrix. The columns of one matrix is labeled. For example,

area1 <- c(9836374,635440,230         


        
4条回答
  •  情话喂你
    2021-01-24 10:08

    I think from what you said, you wanted to keep it as a data frame. You can easily make submatrices by grabbing rows with certain column values.

    Here, I put the data frame back together and made a submatrix just for 1. You can easily add onto it by doing something like using cbind on multiple "area1" columns.

    > area1 <- c(9836374,635440,23018,833696,936079,1472449,879042,220539,870581,217418,552303,269359,833696,936079,1472449,879042,220539,870581, 833696,936079,1472449,879042,220539,870581)
    > id <- c(1,2,5,30,31,34,1,2,5,1,2,5,1,2,5,30,31,34,51,52,55,81,82,85)
    > original<-as.data.frame(cbind(id,area1))
    > original[original$id==1,]
       id   area1
    1   1 9836374
    7   1  879042
    10  1  217418
    13  1  833696
    

    Then you can do what I said before like this.

    > col1<-original[original$id==1,"area1"]
    > col2<-original[original$id==2,"area1"]
    > col3<-original[original$id==5,"area1"]
    > submat<-cbind(col1,col2,col3)
    > colnames(submat)<-c("a1","a2","a3")
    > submat
              a1     a2      a3
    [1,] 9836374 635440   23018
    [2,]  879042 220539  870581
    [3,]  217418 552303  269359
    [4,]  833696 936079 1472449
    

提交回复
热议问题