如何在循环中获取变量名称作为字符串?
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')
我想创建一个函数来正确显示一些 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')