2016-04-26 25 views
0

まず、質問のタイトルが少し一般的だが、私は本当にそれをどのようにフレーズするのかは分かりませんでした。問題は次のようなものです:複数のオブジェクトを1つのベクトルにまとめる

私は、すべてのタイトルがO1921、O1922、...、O2014のようにタイトルが付いた大きなリストのオブジェクトを持っています。 これらのオブジェクトを「オブジェクト」という名前の1つのベクトルに入れたいと思います。

私は次のことを試してみました:

> lambda<-1921:2014 

> objects<-Olambda (This returns "object `Olambda not found') 

私は、試してみました:

> objects<-O[lambda] (This returns "object `O' not found) 

を私は他の多くの方法を試してみましたし、私はまだ同様のエラーを取得します。どのようにこれを行う方法を知っていますか?

+2

あなたが何を望んでいるかは不明ですが、 'objects < - paste(" O "、lambda、sep =" ")'?それはあなたの 'ラムダ'ベクトルを取り、各値に "O"を加えます。 –

+0

可能なコード:[データフレームのリストを作成する方法](http://stackoverflow.com/a/24376207/903061)? – Gregor

答えて

1

オブジェクトを「ベクトル」に格納しようとすると、このベクトルは通常Rのリストと呼ばれます。オブジェクトが回帰結果またはプロットであるとすると、リストオブジェクトはそれらをすべて取ります。あなたが持っている名前でオブジェクトを保存するには、次のように使用することができます。

myObjects <- mget(ls(pattern="^O[12]")) 

限り、似た名前を持つ他のオブジェクトが存在しないとして。それ以外の場合は、正規表現を絞り込む必要があります。

次のように、リストからこれらのオブジェクトの1つを抽出することができます。

myObjects[[1]] 

をさらに良いことに、あなたは、元の名前でオブジェクトを参照することができるようにmyObjectsが名前のリストです:

myObjects[["O1921"]] 
+0

これは動作します!私はあなたに大いに感謝します – UltraEasy

+0

@Imoもう一つのことです。私は> myObjects < - mget(ls(pattern = "^ O [12]"))の引数をあまり理解していません。ここでは正確に12は何ですか? – UltraEasy

+0

@UltraEasy二重引用符 "^ O [12]"の中の文字セットは正規表現です。正規表現はすばらしく、誰もがそれらを使う方法を学ぶべきです。多くのSOの投稿を含め、これらの意味を議論するサイトがたくさんあります。ここで私が始めたのは、[regex](http://www.regular-expressions.info/quickstart.html)です。 "^"はアンカーです: "文字列の先頭で始まります;" "[]"は文字クラスです: "内部の文字に一致します;" "O"はリテラルまたは固定文字です: "文字と一致します"。 – lmo

1

すでになどO1921、O1922、のように見えるベクトルを持っている場合は、これを試してみてください。それが表示されます

objects <- vector_of_values 

Rがエラーを投げているので、あなたはすでに、そのベクトルを持っていません。それはOlambdaと呼ばれる環境内にオブジェクトがないことを伝えています。だから、あなたは1つを作る必要があります!

lambda <- 1921:2014 
Olambda <- paste("O", lambda, sep = "") 
objects <- Olambda 

あなたはこれをさらに簡素化することができます:あなたのコメントに基づいて

objects <- paste("O", lambda, sep = "") 

を、あなたがオブジェクトであるかのログを取りたい場合:

objects <- strsplit(objects, "O") 
objects <- na.omit(as.numeric(unlist(objects))) 
log_objects <- log(objects) 

ことをあなたのコードに組み込む何かを与える必要があります。

+0

これは私が欲しいものに近いが、それほどではない。私は各オブジェクトの関数を使用できるようにしたい。たとえば、 > log(objects [1]) はO1921のログを返します(途中でdatset) – UltraEasy

+0

文字列のログをとることはできません。 "O"で整数に変換します。回答を更新.... –

関連する問題