r - 根据对应元素输出嵌套列表的名称
问题描述
如何输出与其元素对应的嵌套列表的名称?在这个例子中,我想输出 if ("cat") then "foo" , if("dog") then "bar".. etc. 我想避免使用多个 if else 语句,因为可能有 100变量
parms <- list(
"foo" = list( id = "cat", range = c(1,10)),
"bar" = list( id = "dog", range = c(20,30)),
"var" = list( id = "mouse", range = c(40,50))
)
解决方案
根据@A5C1D2H2I1M1N2O1R2T1 评论中的建议:
names(grep("cat", sapply(parms, "[[", "id"), value = TRUE))
[1] "foo"
里面有什么:
- 该部分使用每个(cat, dog, ...) 和每个嵌套列表的名称 (foo, bar, ...)
sapply(parms, "[[", "id")
创建一个命名向量id
- 返回一个名为 vector的
grep
元素,其中包含重合元素及其名称。 - 该
names
部分从命名向量中提取名称(在我们的例子中为 foo)。
推荐阅读
- mysql - 如何从 varchar 列 mysql 中过滤数据
- dart - 如何在不传递传递参数的情况下递归调用方法?
- python - 找出随机森林模型中有多少袋外记录
- windows-subsystem-for-linux - .conf 更改对 WSL 中的重新启动没有影响?
- python - Pytrends - 随时间变化的兴趣 - 没有数据时返回无列
- alpine.js - $dispatch 选择更改事件以更新按钮焦点
- javascript - 将文本绘制到行(x1,y1,x2,y2)时旋转和转换值(使用 p5.js,处理 ... atan2)
- php - Laravel,使用https协议导出pdf时出错
- sql - 使用 max() 和 group by 后获取多行
- vbscript - DeleteFile 或 CopyFile 失败并出现错误 32813