2016-12-05 5 views
0

私はRに取り込むデータがありますが、変数を作成する最良の方法についてはわかりません。基本的に、私の変数はとても似ています:いくつかの変数をリスト/ベクトルとしてrにインポートする

ItemName: "c34" 
    Item Height: 170 
    ItemX = list(0, 1, 2, 3, 5) 
    ItemY = list(50, 30, 20, 10, 5) 
    (...) 
    ItemName: "c36" 
    Item Height: 180 
    ItemX = list(0, 1, 2, 3, 5, 8) 
    ItemY = list(55.2, 30.1, 20, 10, 5, 0.1) 

二つの変数のためでない場合は可変長リストことを、私は単純に、列名を持つデータフレームを持つソリューションを持っています:

["ItemName", "ItemHeight", "ItemX", "ItemY"] 

今で"ItemX"と "ItemY"は可変長リスト/ベクトルです。これをRにインポートするにはどうすればいいですか?ItemYとItemXをプロットするか、回帰するItemY〜ItemX?

GT

+0

私たちは何を見ていますか?あなたのファイルの一部ですか? –

+0

@Rich Scriven、はい、私はRに解析したいファイルの一部です。単に "list"キーワードを追加しましたが、値は実際にファイルに孤立した値として保存されています。 – user1301295

+0

ファイルのサンプルを提供したい場合、正確なインポート方法の表示に役立つ人がいます。 –

答えて

0

おかげでたぶん私はdata.frame df内の文字列としてItemXとItemYを読み、その後、各要素を評価しようとする:

df[, c("ItemX", "ItemY")] <- as.data.frame(apply(df[, c("ItemX", "ItemY")], 
               1:2, 
               function(x) eval(parse(text = x)))) 

かどうかを知るしないでくださいこれは、あなたが各項目のリストの長さが異なる場合に機能します...

どういたしまして助けてください!

+0

私は後でここに投稿しようとしています。ありがとう – user1301295

1

異なる角度からデータを見てみると、tidyrパッケージとアプローチを使用することがあります。 ItemNameのとItemHeight列を繰り返すことにより

ItemName ItemHeight ItemX ItemY 
"c34"  170   0  50 
"c34"  170   1  30 

と:R-Studio: Introducing Tidyr

あなたのデータの形式は次のようになり、データフレームのようになります。ここでは、より詳細にアプローチを説明してR-Studioからの記事です各x、yペアに新しい行を追加すると、すべてのデータを持つことができ、異なる数のx、yペアを持つデータでハングアップすることはできません。

関連する問題