【问题标题】:Call a variable name within another variable in R在 R 中的另一个变量中调用变量名
【发布时间】:2021-03-02 21:46:45
【问题描述】:
我有一个变量:
Person1 = "friend"
我保存在第二个变量中,即:
Real_friend = Person1
有没有可能有这样的功能:
output <- myfunc(Real_friend)
myfunc <- function(v1) {
# do something with v1
# so that it prints "Person1" when
# this function is called
#
# instead of "friend"
return ()
}
output = "Person1"
我已经尝试应用这里建议的方法:deparse(substitute(v1)):
How to convert variable (object) name into String
但它似乎不起作用。
提前非常感谢
【问题讨论】:
标签:
r
string
function
reference
【解决方案1】:
当你写Real_friend = Person1时,R只是把Person1的内容放到Real_friend中,它不保存任何通过Person1完成的记录。您可以做的一件事是将"Person1" 传递给Real_friend,然后在需要"Person1" 作为输出时调用Real_friend,或者在需要Person1 的内容时调用get(Real_Friend)。
Person1<-"John"
> Real_friend<-"Person1"
> Real_friend
[1] "Person1"
> get(Real_friend)
[1] "John"
使用您提供的链接实现类似目标的第二种方法是:
> Real_friend<-substitute(Person1)
现在Real_friend 的内容是对Person1 的未评估调用:
> Real_friend
Person1
您可以使用deparse以字符串形式获取变量的名称,也可以使用eval获取变量的内容:
> deparse(Real_friend)
[1] "Person1"
> eval(Real_friend)
[1] "John"
同样,这些选项都不允许您以 Real_friend<-Person1 开头。