2017-02-14 3 views
1

内のリストやベクトルから変数名を抽出します。と仮定すると、R

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

文字列(「AA」、「BB」)、リスト1またはvect1のいずれかからのような変数名を抽出する方法はありますか? この情報はリストやベクターに保存されていますか?そうでない場合、適切なフォーマットは何でしょうか?

ありがとうございます!

+3

listが形成された変数の名前の文字列バージョンにアクセスすることができますいいえ。そのためには、 'list1 = list(aa = aa、bb = bb)'のようなものが必要で、 'names(list1)'を実行すると思います。同様に、vectorは 'c(aa = aa、bb = 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) 

を行う準備ができている場合でも、今、あなたは簡単に、

names(list1) 
関連する問題