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

如何在R语言函数中获取传入向量的变量名作为返回列表元素名

在R函数中获取传入参数的变量名作为列表元素名

你可以通过deparse(substitute(x))组合获取传入参数的变量名,再用这个名称构造返回的列表。以下是修改后的完整代码:

myFun <- function(x) {  
  # 示例操作:计算输入向量的均值(可替换为你的实际操作)
  某个值 <- mean(x)  
  # 获取传入参数的变量名
  var_name <- deparse(substitute(x))
  # 构造以变量名为元素名的列表
  setNames(list(某个值), var_name)
}  

CL <- c(1,2,3,4,5)  
z <- myFun(CL)

执行后输出结果符合预期:

z
$CL
[1] 3

原理说明

  • substitute(x) 会捕获传入函数的原始表达式(这里就是CL这个符号对象)
  • deparse() 将符号对象转换为字符串形式,得到变量名"CL"
  • setNames() 用来给列表元素设置指定的名称

如果你习惯使用rlang包的语法,也可以用更简洁的方式实现:

library(rlang)

myFun <- function(x) {  
  某个值 <- mean(x)  
  var_name <- as_name(ensym(x))
  setNames(list(某个值), var_name)
}

内容的提问来源于stack exchange,提问作者Peter Bonate

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:55:14