You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ensym或合适函数存储变量并赋值?(R语言场景)

正确实现方法

你遇到的问题是因为在list()的命名语法中,等号左侧不支持直接使用表达式动态生成名称。以下是几种可行的解决方式:

方式1:使用rlang包的list2()与:=(符合你想用ensym的需求)

利用rlang的!!解引用符号,结合:=实现动态命名:

library(rlang)
quest <- 'a'
list2(!!ensym(quest) := 1)

输出结果:

$a
[1] 1

方式2:基础R赋值法

不需要额外依赖包,先创建空列表再通过下标赋值:

quest <- 'a'
res <- list()
res[[quest]] <- 1

方式3:基础R的setNames()函数

直接给列表元素设置对应名称:

quest <- 'a'
setNames(list(1), quest)

内容的提问来源于stack exchange,提问作者Working dollar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 11:02:37