将数据框转换为结构化列表

时间:2020-02-12 10:42:11

标签: r

在以下.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 个答案:

答案 0 :(得分:1)

你可以做

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" 
相关问题