2016-01-14 47 views
0

對於每個項目,我有一個稀疏向量,包括5000個變量,我應該把它存放在有點像JSON格式的:如何在文本文件中存儲長矢量?

1:3,40:2,500:3 

或只是在一個矢量格式:

1,0,0,0.....3....... 

如果第一種格式,鋤頭可以讀取它作爲一個向量?

編輯:

現在,我已經嘗試了第二種方法,併成倍文件大小增加。所以也許應該使用其他方式。

+0

您可以將它的第一種方式,使用readlines方法()閱讀它,通過strsplit()或一些這樣的事情來解析,並在內存中重建你的完整向量。 – Gopala

回答

0

有可能是一種更有效的方式,以「未提取」,但這裏是讓你恢復矢量退一組的方式:

s <- readLines('filename') 
s 
[1] "1:3,40:2,500:3" 

valList <- unlist(strsplit(s, ',')) 
valList <- sapply(unlist(valList), function(x) strsplit(x, ':')) 
as.numeric(unlist(sapply(valList, function(x) {x <- as.numeric(x); rep(x[1], x[2])}))) 
+0

感謝您的回覆!事實上,我的數據文件還包含另一列,並且有超過90,000行。我試圖在讀完整個數據後應用你的方法,但失敗了。你能否給我更多的細節? – southdoor