r - 在 R 中,当名称是字符向量的值时,如何按名称指示参数?
问题描述
假设我需要这样做:
foo <- list(`a+b` = 5)
但我有'a+b'
(一个字符串)保存在一个变量中,让我们说name
:
name <- 'a+b'
如何使用名称为变量中的值的元素创建该列表name
?
注意:我知道将名称分配给列表元素的其他方法。这里的列表只是一个例子。我想了解的是我如何处理非标准评估,以便我可以向函数指示命名参数,而无需直接内联输入。
我已经阅读了 Hadley 的Advanced R第 13 章关于非标准评估的内容,但我仍然不知道如何做到这一点。
任何具有基本 R 或整洁评估的解决方案都值得赞赏。
解决方案
我们可以用setNames
bar <- setNames(list(5), name)
identical(foo, bar)
#[1] TRUE
或者先创建对象,然后使用names
bar2 <- list(5)
names(bar2) <- name
或与names<-
bar3 <- `names<-`(list(5), name)
此外,tidyverse
选项是取消引用 ( !!
) 并分配 ( :=
)
library(tidyverse)
lst(!! name := 5)
#$`a+b`
#[1] 5
推荐阅读
- python - 带有关系的可选字段的模型
- angular - 如何在角茉莉花中进行手动注射
- ruby-on-rails - 如何使用 Ruby on Rails 设置具有给定表集的 MVC 样式
- html - HTML & CSS:作为叠加层的粘性
- spring - 使用 @EnableOAuth2Sso 和 @EnableResourceServer 时不支持 UserDetailsService
- c++ - 从输入文件中修剪空格
- angular - 无法从 Angular 的资产文件夹中加载 CSS 文件
- python - 最常见的对 - Python
- node.js - 让 jest 转译到 src 目录之外
- input - 从 kotlin 中的文件中读取地图的数组列表