2017-02-14 12 views
1

Предполагая:Извлечение имен переменных из списка или вектора в R

aa = c('A','B','C') 
bb = c('D','E','F') 
list1 = list(aa,bb) 
vect1 = c(aa,bb) 

Есть ли способ извлечения имен переменных в виде строк («аа», «BB») из любой list1 или vect1? Сохраняется ли эта информация в списках и векторах? Если нет, то какой будет подходящий формат?

Заранее благодарен!

+3

Неа. Для этого я считаю, что вам нужно что-то как «list1 = list (aa = aa, bb = bb)», а затем сделать «names (list1)», и аналогичным образом вектор можно назвать «c (aa = aa, bb = бб) '. –

ответ

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" 

Однако было бы неплохо иметь больше контекста о том, что вы хотите сделать.

1

Для ситуации, что вы сделали, ответ - нет. Но если вы готовы сделать некоторые изменения в коде, то вы можете легко получить его,

list1 <- list(aa = aa, bb = bb) 

Теперь вы можете легко получить доступ к версии строки имен переменных, из которых формируется list,

names(list1) 

 Смежные вопросы

  • Нет связанных вопросов^_^