从 R 中的列表或向量中提取变量名称
Extract variable names from list or vector in R
假设:
aa = c('A','B','C')
bb = c('D','E','F')
list1 = list(aa,bb)
vect1 = c(aa,bb)
有没有办法从 list1 或 vect1 中将变量名称提取为字符串 ('aa'、'bb')?
这些信息是否存储在列表和向量中?如果不是,合适的格式是什么?
提前致谢!
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)
您也可以通过使用 cbind
:
调整 vect1 来实现
vect1 = cbind(aa,bb)
colnames(vect1)
假设:
aa = c('A','B','C')
bb = c('D','E','F')
list1 = list(aa,bb)
vect1 = c(aa,bb)
有没有办法从 list1 或 vect1 中将变量名称提取为字符串 ('aa'、'bb')? 这些信息是否存储在列表和向量中?如果不是,合适的格式是什么?
提前致谢!
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)
您也可以通过使用 cbind
:
vect1 = cbind(aa,bb)
colnames(vect1)