假设:
aa = c('A','B','C')
bb = c('D','E','F')
list1 = list(aa,bb)
vect1 = c(aa,bb)
有没有办法从list1或vect1中将变量名称提取为字符串('aa','bb')? 这些信息是否存储在列表和向量中?如果没有,那么适当的格式是什么?
提前致谢!
答案 0 :(得分:3)
对于你所做的情况,答案是否定的。但是,如果您准备对代码进行一些更改,那么您可以轻松获得它,
list1 <- list( aa = aa, bb = bb)
现在,您可以轻松访问形成list
的变量名称的字符串版本,
names(list1)
答案 1 :(得分:1)
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"
然而,最好有关于你想做什么的更多背景信息。
答案 2 :(得分:0)
您也可以通过使用 cbind
调整 vect1 来实现:
vect1 = cbind(aa,bb)
colnames(vect1)