How to extract elements from a list with mixed elements

前端 未结 3 1473
北海茫月
北海茫月 2020-12-24 06:27

I have a list in R with the following elements:

[[812]]
[1] \"\"             \"668\"          \"12345_s_at\" \"667\"          \"4.899777748\" 
[6] \"49.53333         


        
3条回答
  •  Happy的楠姐
    2020-12-24 07:25

    If you want to extract the third element of each list element you can do:

    List <- list(c(1:3), c(4:6), c(7:9))
    lapply(List, '[[', 3)  # This returns a list with only the third element
    unlist(lapply(List, '[[', 3)) # This returns a vector with the third element
    

    Using your example and taking into account @GSee comment you can do:

    yourList <- list(c("","668","12345_s_at","667", "4.899777748","49.53333333",
           "10.10930207", "1.598228663","5.087437057"),
         c("","376", "6789_at",  "375",  "4.899655078","136.3333333",
           "27.82508792", "2.20223398",  "5.087437057"),
         c("", "19265", "12351_s_at", "19264", "4.897730912",
           "889.3666667", "181.5874908","1.846451572","5.087437057" ))
    
    sapply(yourList, '[[', 3)
    [1] "12345_s_at" "6789_at"    "12351_s_at"
    

    Next time you can provide some data using dput on a portion of your dataset so we can reproduce your problem easily.

提交回复
热议问题