0

我正在尝试从原始数字空格分隔的文本文件制作一个 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。我不能使用 load / read.table 函数,因为我正在从映射器内的 HDFS 文件中读取)

4

1 回答 1

0

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

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

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

于 2013-02-27T12:36:27.913 回答