變量名假設:提取從列表或向量中的R
aa = c('A','B','C')
bb = c('D','E','F')
list1 = list(aa,bb)
vect1 = c(aa,bb)
有一種方法來提取的變量名作爲字符串(「AA」,「BB」)從任一list1的或vect1? 這個信息被存儲在列表和向量中嗎?如果不是,那麼適當的格式是什麼?
在此先感謝!
變量名假設:提取從列表或向量中的R
aa = c('A','B','C')
bb = c('D','E','F')
list1 = list(aa,bb)
vect1 = c(aa,bb)
有一種方法來提取的變量名作爲字符串(「AA」,「BB」)從任一list1的或vect1? 這個信息被存儲在列表和向量中嗎?如果不是,那麼適當的格式是什麼?
在此先感謝!
aa = c('A','B','C')
bb = c('D','E','F')
list1 = list(aa,bb)
vect1 = c(aa,bb)
簡短的回答是否定的。如果你看看dput(list1)
和dput(vect1)
的結果,你會看到,這些對象不包含該信息的任何更多:
list(c("A", "B", "C"), c("D", "E", "F"))
c("A", "B", "C", "D", "E", "F")
有你可以得到這個信息,這是當表達式的一種方式被傳遞給函數:
f <- function(x) {
d <- substitute(x)
n <- sapply(d[-1],deparse)
return(n)
}
f(c(aa,bb))
## [1] "aa" "bb"
然而,這將是件好事,你想要做什麼更多的上下文。
對於情況你所做的答案是否定的。但是,如果你準備做在你的代碼的一些變化,那麼你可以很容易地得到它,
list1 <- list(aa = aa, bb = bb)
現在,您可以輕鬆地訪問從其形成list
的變量名的字符串版本,
names(list1)
不。爲此,我相信你會需要'list1 = list(aa = aa,bb = bb)'然後做'names(list1)',同樣的,vector可以命名爲'c(aa = aa,bb = BB)'。 –