R 获取循环中对象的名称

R 获取循环中对象的名称,r,R,我知道从作为参数传递给函数的对象中获取名称的deparse+substitute技巧,但是在循环中同样的技巧是无效的 我的代码(仅用于测试): 使用lappy lapply(mylist, function(x) { print(names(x))} ) # NULL # NULL # $first # NULL # # $second # NULL 根据您的问题使用进行循环 for (element in names(mylist)){ print(element) } # [1] "

我知道从作为参数传递给函数的对象中获取名称的deparse+substitute技巧,但是在循环中同样的技巧是无效的

我的代码(仅用于测试):


使用
lappy

lapply(mylist, function(x) { print(names(x))} )
# NULL
# NULL
# $first
# NULL
# 
# $second
# NULL
根据您的问题使用
进行循环

for (element in names(mylist)){
  print(element)
}
# [1] "first"
# [1] "second"
使用“名称”


在您的示例中,您可以只使用
print(element)
names(mylist)
有什么问题吗?lapply做的事情稍有不同,因为它将
names
函数应用于每个列表元素,返回NULL,因为它们在示例中没有名称。
lapply(mylist, function(x) { print(names(x))} )
# NULL
# NULL
# $first
# NULL
# 
# $second
# NULL
for (element in names(mylist)){
  print(element)
}
# [1] "first"
# [1] "second"
for (element in names(mylist)){
  print(as.name(element))
}