Преобразование кадра данных в структурированный список - PullRequest
0 голосов
/ 12 февраля 2020

В следующем файле .RData:

https://www.dropbox.com/s/ct6ttye8mmci22v/Test_Data_Colours.RData?dl=0

Я хочу преобразовать фрейм данных b в структурированный словарный список ( пример которого показан в my_colour[["CellType"]]).

Я пробовал:

xy.list <- setNames(split(b, seq(nrow(b))), rownames(b))

Но это не дает желаемого результата, и я не уверен, как это сделать. Есть ли простой и / или короткий способ достижения конверсии?

1 Ответ

1 голос
/ 12 февраля 2020

Вы можете сделать

setNames(b$Colour, b$CellType)
#>       Macrophages                DC         Microglia      B cells, pro 
#>         "#E9C825"         "#E77800"         "#E3B60B"         "#EE3900" 
#>                NA       Neutrophils         Monocytes        Mast cells 
#>         "#54A6BA"         "#E39700"         "#7EB8BC"         "#6EB2C2" 
#> Endothelial cells         Basophils           B cells        Stem cells 
#>         "#E7C21C"         "#E1B002"         "#3B9AB2"         "#AEC07B" 
#>           T cells               NKT               ILC               Tgd 
#>         "#E5BC13"         "#61ACBE"         "#96BC9C"         "#C6C55A" 
#>          NK cells  Epithelial cells       Fibroblasts     Stromal cells 
#>         "#EA5800"         "#47A0B6"         "#F21A00"         "#DEC93A" 

В R это называется именованным символом-вектором , а не списком словаря.

class(my_colour[["CellType"]])
#> [1] "character"

attributes(my_colour[["CellType"]])
#> $names
#>  [1] "Macrophages"       "DC"                "Microglia"         "B cells, pro"     
#>  [5] "NA"                "Neutrophils"       "Monocytes"         "Mast cells"       
#>  [9] "Endothelial cells" "Basophils"         "B cells"           "Stem cells"       
#> [13] "T cells"           "NKT"               "ILC"               "Tgd"              
#> [17] "NK cells"          "Epithelial cells"  "Fibroblasts"       "Stromal cells" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...