2016-12-05 36 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中的最好方法是什麼,以便我可以做簡單的事情,比如爲每個Item繪製ItemY和ItemX或做一個迴歸ItemY〜ItemX?

感謝

GT

+0

我們在看什麼?你的文件的一部分? –

+0

@Rich Scriven,是的,這是我想解析爲R的文件的一部分。我添加了「list」關鍵字只是爲了表示,但實際上這些值是作爲彗星分離值存儲在文件上的。 – user1301295

+0

您可能想要提供該文件的示例,並且人們可以更有助於顯示確切的導入方法。 –

回答

0

也許我會嘗試讀取ItemX和ItemY如在data.frame df字符串,然後評估每一個元素:

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

不知道這將工作,如果你有不同長度的每個項目的列表...

希望它有助於某種方式!

+0

我正試圖在稍後發佈。謝謝 – user1301295

1

您可能會嘗試從不同角度查看數據並使用tidyr軟件包和方法。下面是從R-Studio中詳細解釋了該方法的文章:R-Studio: Introducing Tidyr

你的數據格式將是一個數據幀應該是這樣的:

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

通過重複ITEMNAME和ItemHeight列爲每個x,y對添加一個新行,您可以獲得所有數據,而不會被具有不同數量x,y對的數據掛起。

相關問題