質問

私は一緒に他のdata.frames(以下に示す)の数を組み合わせることによって作成series_to_plot.df呼び出さdata.frameを有します。私は今、私はそれらをプロットすることができますので、これらのそれぞれからわずか.mm列を引き出したいです。 (... p3c4.mmなど、例えばp3c3.mm)各data.frameの第3列を引き出したいが、私はをループせずに、オブジェクト内のすべてのdata.framesのためにこれを行う方法を見ることができない私はそう名前。これは可能でしょうか?

私はちょうど1セット引き出すことができます。例えばをseries_to_plot.df [[3]]と他によって series_to_plot.df [[10]](それはベクトルのリストだけがあるので...)と私はseries_to_plot.dfます$ p3c3.mmを直接参照することができますが、全てミリメートルの各データからを含むベクトルを取得するためのコマンドがあります。フレーム? series_to_plot.df [、3 [3]それは[.data.frameにエラーを返す(series_to_plot.df、3 [3]):未定義の列が選択された

私は仕事に、このようなインデックスに何かを期待していました
series_to_plot.df
          p3c3.rd         p3c3.day    p3c3.mm      p3c3.sd                 p3c3.n p3c3.noo p3c3.no_NAs
    1     2010-01-04             0    0.1702531    0.04003364              7                1           0
    2     2010-01-06             2    0.1790594    0.04696674              7                1           0
    3     2010-01-09             5    0.1720404    0.03801756              8                0           0

          p3c4.rd         p3c4.day    p3c4.mm      p3c4.sd                 p3c4.n p3c4.noo p3c4.no_NAs
    1     2010-01-04             0    0.1076581   0.006542157              6                2           0
    2     2010-01-06             2    0.1393447   0.066758781              7                1           0
    3     2010-01-09             5    0.2056846   0.047722862              7                1           0

          p3c5.rd         p3c5.day    p3c5.mm      p3c5.sd                 p3c5.n p3c5.noo p3c5.no_NAs
    1     2010-01-04             0   0.07987147   0.006508766              7                1           0
    2     2010-01-06             2   0.11496167   0.046478767              8                0           0
    3     2010-01-09             5   0.40326471   0.210217097              7                1           0
役に立ちましたか?

解決

他の回答に追加するには、私は変数名にエンコードされた有用な情報を持っているのは良いアイデアだとは思いません。すべての有用な情報がいくつかの変数の値になるように、はるかに良いあなたのデータを再配置します。私は適切なフォーマットを示唆するデータセットについて十分に知らないが、それはのようなものかもしれません。

p c         rd day date mm sd ...
3 3 2010-10-04 ...
これが完了したら、あなたの質問への答えは簡単df$mmになります。

あなたは、外部ソースからあまり有用形式でデータを取得している場合は、

、あなたはreshapeパッケージからreshape機能や関数を使用してR内に上記のような、より有用な形態でそれを並べ替えることができます。

他のヒント

は、あなたが行うことができ、指定された名前を持つすべての列を取得するには

names_with_mm <- grep("mm$", names(series_to_plot.df), value=TRUE)
series_to_plot.df[, names_with_mm]

しかし、あなたのベースdata.frameのすべてが同じ構造を持っているならば、あなたがそれらをrbindすることができ、何かます:

series_to_plot.df <- rbind(
  cbind(name="p3c3", p3c3),
  cbind(name="p3c4", p3c4),
  cbind(name="p3c5", p3c5)
)

次にmm値が1列にあり、プロットへの容易

<のhref = "http://docs.google.com/viewer?a=v&q=cache:sNuYdCH4aFwJ:cran.r-project.org/doc/manuals/R-lang.pdf+r+language +定義&HL = EN&GL = US&PID = BL&SRCID = ADGEESimnt1hKjEDxoFSU7XYxXBy8-XHZjM8fxZdo9sgWeQJ_9eHJLbNETr9YFCcUwU2KPKO921c_MX4gbTBlbIaFU4sTmorkTzPe_ymWqnWt1EeQRBry4-XmVQl4m-2sb20N8kKtiBk&SIG = AHIEtbTX7nuWBs1BVGYXVFa_BVAU5VSE2Q」のrel = "nofollowをnoreferrer">かなり便利ですインデックスにいくつかの良い情報(秒3.4.1)を持つのR言語の定義、 。

あなたは、その後のgrep()コマンドを使用してシーケンスに一致する名前を引くことができます。このように、文字列、それはすべて一緒ます:

 dataWithMM <- series_to_plot.df[,grep("[P]", names(series_to_plot.df))]

はそれを少し解体し、これは「ミリメートル」のパターンに一致する列数を取得します

 namesThatMatch <- grep("[mm]", names(series_to_plot.df)

そして、私たちは私たちが望むの列を呼び出すためにそのリストを使用します:

  dataWithMM <- series_to_plot.df[, namesThatMatch ]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top