我有一个对象(Seurat 对象),我需要从中获取某些数据
> sc@misc[["colors"]][["seurat_clusters"]]
0 1 2 3 4 5 6 7
"#CC0C00FF" "#5C88DAFF" "#84BD00FF" "#FFCD00FF" "#7C878EFF" "#00B5E2FF" "#00AF66FF" "#CC0C00B2"
需要这些数据作为向量,但我不知道如何从中提取“#CC0C00FF”“#5C88DAFF”等。
为了将此数据传递给下一个函数,结果应如下所示:
> vec
[1] "#CC0C00FF" "#5C88DAFF" "#84BD00FF"
提前致谢!
解决了!我自己很失望,因为我不知道这个功能存在:
> as.vector(sc@misc[["colors"]][["seurat_clusters"]])
[1] "#CC0C00FF" "#5C88DAFF" "#84BD00FF" "#FFCD00FF" "#7C878EFF" "#00B5E2FF" "#00AF66FF" "#CC0C00B2"
只是为了您的理解,
as.vector
几乎肯定不需要:结果已经是一个向量。该向量具有名称(由 剥离as.vector
),因此显示方式不同。但是这些名称应该不成问题,因此您无需剥离它们。(我基于您的代码的输出...返回的内容实际上可能有所不同,但这不太可能)。另外,您可以通过使用名称访问而不是基于值的子集来简化代码。也就是说,你可以写
sc@misc$colors$seurat_clusters
而不是你写的东西。@KonradRudolph 我也认为这些名字应该不是问题。该文档说“还接受 Brewer 色标或颜色向量”和您的示例
is.vector(sc@misc$colors$seurat_clusters) [1] TRUE
。尽管如此,该函数仅在我删除名称时才运行。