r - 访问没有名称的列表中的值
问题描述
我有以下命名字符列表,可用作 ggplot2 中的调色板:
aa_palette <- c("#75041a", "#a50026", "#d73027", "#f46d43", "#fdae61", "#fee090", "#ffffbf",
"#e0f3f8", "#aad0e5", "#abd9e9", "#74add1", "#4575b4", "#313695", "#2a167a", "#989898")
names(aa_palette) <- c("Asx", "Glx", "Ser", "Thr", "His", "Gly", "Arg", "Ala", "Tyr", "Val",
"Met", "Phe", "Leu", "Ile", "Other")
但是,我的一些绘图中的变量与此列表中的名称不对应,因此我只想提取值而不需要创建一个全新的对象。我知道我可以使用单个值执行此操作,[[]]
但我想访问每个图中的多个值,因此我正在寻找一种方法来执行此操作,而不必单独访问每个值然后将c()
它们一起访问。我尝试了以下方法:
unlist(aa_palette, use.names = FALSE)
aa_palette[c("Asx", "Glx", "Ser")]
但是这两种方法仍然返回列表中每个元素的名称。有没有办法只访问列表中部分或全部元素的值,而不必[[]]
一个一个地访问它们?
解决方案
你可以试试:
unname(aa_palette)
更新
根据下面的评论。
或者,您可以创建aa_palette
一个列表,然后使用上面的代码。如果您class(aa_palette)
在上面运行,您将得到character
- 即一个因此不能“未列出”的字符向量。
aa_palette <- list("#75041a", "#a50026", "#d73027", "#f46d43", "#fdae61", "#fee090", "#ffffbf",
"#e0f3f8", "#aad0e5", "#abd9e9", "#74add1", "#4575b4", "#313695", "#2a167a", "#989898")
names(aa_palette) <- c("Asx", "Glx", "Ser", "Thr", "His", "Gly", "Arg", "Ala", "Tyr", "Val",
"Met", "Phe", "Leu", "Ile", "Other")
然后这个工作:
unlist(aa_palette, use.names = FALSE)
推荐阅读
- python - 从雅虎财经返回当月数据
- c++ - 使用 string.resize() 进行 C++ 缓冲区复制优化
- database - 跨区域/区域保持数据库同步(写入/更新后)
- haskell - 如何使 Applicative 的实例成为某种数据类型
- azure - Azure Devops 中的“上一次执行成功后构建”
- firebase - 您从哪里获取/找到 Firebase 的 JWT-Secret?
- python - Python 中文本数据的 FScore、Precision、Recall 和 Accuracy
- php - 无法在“a href”链接中传递带撇号的变量
- excel - 如何根据翻译列表用中文字符替换列中的单元格?
- bash - 如何通过 xargs 将多个查询参数传递到 httpie?