2013-02-27 92 views
0

我試圖從一個原始數值空間deliminated文本文件做一個RDATA文件,即原始數據轉換文件RDATA文件

11 33 55 
22 33 45 
25 78 00 
44 87 99 .... 

我有另一條R腳本,需要加載這個新的RDATA文件並執行使用mapreduce(rhipe)與數據進行線性迴歸。因此,當我保存這個RObject我需要讀回這樣:

data <- strsplit(unlist(map.values)," ") 

#so that I can run regression like: 
y<- unlist(lapply(data,"[[",1)) 
x1<-unlist(lapply(data,"[[",2)) 
x2<-unlist(lapply(data,"[[",3)) 
lm(y~x1+x2) 

我已經嘗試了許多方法來我的數據保存到RDATA對象,包括表格,列表和as.character,但非成功所以我可以使用我的上述方法來閱讀它。我怎樣才能保存我的原始文件,以便我可以用上面的方式閱讀它?謝謝。

(PS。因爲我是從映射器內部的HDFS文件中讀取數據,我不能使用負載/功能函數read.table)

+0

https://github.com/RevolutionAnalytics/RHadoop/wiki/rhdfs有什麼用? – mnel 2013-02-27 03:34:07

回答

0

如果我理解正確的話,你希望你的存儲對象是一串字符串表格「數字 - 空格 - 數字」。在這種情況下,使用sprintf

foo <- sprintf('%d %d %d',my_data[1,]) 

如創建的第一行的一個例子。運行一個循環或*apply來構建整個陣列。將該字符串數組保存到RData文件中。這應該至少接近你想要的。
注:我認爲建議改進數據排序和迴歸的遠端代碼是徒勞的嗎?

+0

當我使用RHipe閱讀我的.RData文件時,我得到如下所示: 文件名是t6�}�����￿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½HN����TFl?ï¿ ½,����5����z��MG6BU����fQ3�Û����Ê'J�@�Óï¿ ½l���n'���d�A�TT�\��!������u�[N�#'X1pA 我錯過了什麼解碼? – 2013-02-27 20:23:23