2015-11-07 48 views
0

我有了形式轉換文本文件數據到表中的R

sr:user1 
target:user2 
vt:4 
time:12 
sr:user3 
target:user4 
vt:42 
time:120 

數據有一個簡單的方法,使數據的模樣利用R如下:

sr  target vt time 
user1  user2 4 12 
user3  user4 42 120 
+0

當你說有這種形式,是與按行的文本文件? –

回答

0

這假定你的文本文件有規律的排列:scan可以處理多行數據的常規列表輸入。有關詳細信息,請閱讀掃描幫助頁面中有關「what」參數的部分。

inp <- scan(text= "sr:user1 
target:user2 
vt:4 
time:12 
sr:user3 
target:user4 
vt:42 
time:120", what=list(sr="",target="", vt="", time="")) 
#Read 2 records 
data.frame(lapply(inp, sub, patt=".*[:]", repl="")) 
#--------------- 
    sr target vt time 
1 user1 user2 4 12 
2 user3 user4 42 120 
3

假設你的數據在文件data.csv

require(data.table) 
f <- fread("data.csv", header=FALSE) 
(x <- unstack(f, V2 ~ V1)) 
+1

包名是'data.table',否則就是一個很好的答案。我檢查了是否交換了影響結果的項目順序,並且似乎能夠比我建議的'scan'方法更好地維護屬性值關聯。 –

+0

感謝BondedDust,更正了包名 – leo

+0

感謝您的回覆 – Camilla