如何在循环中获取变量名称作为字符串?

How to get the name of a variable as a string in a loop?

我想创建一个函数来正确显示一些 R 变量的名称。

我尝试使用 deparse(substitute(variable)) 效果很好,但我无法使其在循环中工作

a = 5
b = 6
c = 7
myobjects = c(a, b, c)

for (i in 1:3){
  cat(deparse(substitute(myobjects [i])), " : ", myobjects [i], "\n")
}

哪个returns

myobjects[i]  :  5 
myobjects[i]  :  6 
myobjects[i]  :  7

而不是

a : 5
b : 6
c : 7

'myobjects' 仅包含对象 'a'、'b'、'c' 的值。如果我们需要获取原始对象,创建一个名为 vector 并获取 names

myobjects <- c(a = a, b = b, c = c)
for(i in 1:3) cat(names(myobjects[i]), " : ", myobjects[i], "\n")
#a  :  5 
#b  :  6 
#c  :  7 

或者正如@IceCreamToucan 在评论中提到的那样,它可以被矢量化(没有 for 循环),就像 paste 进行矢量化

cat(paste0(names(myobjects), ' : ', myobjects), '\n', sep = '\n')