R 如何获得分配给另一个变量的变量名?
示例代码:R 如何获得分配给另一个变量的变量名?,r,R,示例代码: target = Y ~ X1 + X2 + X3 now = target 我想使用now(现在)的变量名自动获取target(现在)的变量名 预期结果: paste0(***the thing I need***,".best") "target.best" 我需要的东西现在应该只与相关(因为我想自动运行代码) 有人能帮我吗?thx:) 目前我知道我可以使用函数deparse(substitute())来获取名称,但我知道如何仅通过使用名称立即获取名称目标 通过使用函数get
target = Y ~ X1 + X2 + X3
now = target
我想使用now
(现在)的变量名自动获取target
(现在)的变量名
预期结果:
paste0(***the thing I need***,".best")
"target.best"
我需要的东西现在应该只与相关(因为我想自动运行代码)
有人能帮我吗?thx:)
目前我知道我可以使用函数deparse(substitute())
来获取名称,但我知道如何仅通过使用名称立即获取名称目标
通过使用函数get()
,我只能获取target的值,而不能获取名称
在我的例子中,变量现在所指的是灵活的,它可以是target1
或target2
等等。我想通过不使用变量名target1
/target2
来获得现在所指的内容。例如,如果now=target2
,则预期答案应该能够通过仅使用变量名now
获得“target2”
,target2
不应包括在内。仅使用替换()声明变量now
可以实现您的首选输出。不过,让我知道我是否误解了你的问题
target = Y ~ X1 + X2 + X3
now = substitute(target)
> paste0(now, '.best')
[1] "target.best"
您现在可以使用eval()
访问的实际值:
这有点被误解了。我将继续切换代码中现在所指的内容。例如,现在可以是target1,也可以是target2,我想通过现在继续使用变量名来自动获取这些变量名。例如,当now=target1时,我想要的结果是“target1.best”,当now=target2时,结果应该改为“target2.best”,但最重要的是,我需要的函数现在应该只包含变量名,target1/target2不应该在函数中。好的。如果看不到整个代码的大图,就很难理解它。但是,如果只将now
重新指定为当时适用的任何目标(1、2等)的替换(),则eval(now)将始终输出其当前状态。例如,当now
等于substitute(target1)
时,则粘贴(now)
将生成target1
。当now
等于substitute(target2)
时,paste(now)
生成target2
,依此类推。是的,我知道eval()是如何工作的,正如你上面提到的,eval(now)将输出target的值,我想要的是:函数(now)输出“target”,不是值而是名称
> eval(now)
Y ~ X1 + X2 + X3