Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何获得分配给另一个变量的变量名?_R - Fatal编程技术网

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