获取循环内对象的名称

时间:2017-02-14 08:54:35

标签: r

我知道deparse + substitute技巧从作为参数传递给函数的对象中获取名称,但循环中的相同技巧不起作用。

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

mylist <- list(first = c("lawyer","janitor"), second = c("engineer","housewife"))

for (element in names(mylist)){
  print(deparse(substitute(mylist[[element]])))
}

[1] "mylist[[element]]"
[1] "mylist[[element]]"

有没有办法得到结果?:

first
second

2 个答案:

答案 0 :(得分:2)

使用lapply

lapply(mylist, function(x) { print(names(x))} )
# NULL
# NULL
# $first
# NULL
# 
# $second
# NULL

根据您的问题使用for循环

for (element in names(mylist)){
  print(element)
}
# [1] "first"
# [1] "second"

答案 1 :(得分:1)

使用&#34;名称&#34;

for (element in names(mylist)){
  print(as.name(element))
}