簡體   English   中英

獲取循環內對象的名稱

[英]get name of an object inside a loop

我知道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

使用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"

使用“名字”

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM