将原始数据文件转换为RData文件

时间:2013-02-27 03:27:17

标签: r file input 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对象中,包括table,list和as.character,但是没有成功,所以我可以使用上面的方法读取它。如何保存原始文件,以便我可以按照上面的方式阅读?谢谢。

(ps。我不能使用load / read.table函数,因为我正在从mapper中的HDFS文件中读取)

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你希望你的存储对象是一堆形式为“number - space - number”的字符串。在这种情况下,请使用sprintf

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

作为创建第一行的示例。运行循环或*apply来构建整个数组。将该字符串数组保存到RData文件。这应该至少接近你想要的。
注意:我认为建议改进进行数据排序和回归的远端代码是徒劳的吗?