解析R中的序列化数据

时间:2015-03-19 14:44:37

标签: r dataframe token

我正在尝试将大数据集读入R中的数据框。数据看起来像这样(但是有很多很多列):

\xk:1520890\xdt:2015031901053801\xty:M\nty:ID\qty:0.00\qoh:0.00\qt:0.00\qp:0.00\wqty:\qre:0
\xk:1520897\xdt:2015031901064000\xty:M\nty:IA\qty:0.00\qoh:0.00\qt:0.00\qp:0.00\wqty:\qre:0
\xk:1520900\xdt:2015031901071000\xty:M\nty:ID\qty:0.00\qoh:0.00\qt:0.00\qp:0.00\wqty:\qre:0

当然有办法做到这一点,但我不知道在哪里看。

1 个答案:

答案 0 :(得分:1)

在类似UNIX的系统中(但在R中)你可以这样做:

system("tr -d '\\' < test.txt")
#-----output-------
xk:1520890xdt:2015031901053801xty:Mnty:IDqty:0.00qoh:0.00qt:0.00qp:0.00wqty:qre:0
xk:1520897xdt:2015031901064000xty:Mnty:IAqty:0.00qoh:0.00qt:0.00qp:0.00wqty:qre:0
xk:1520900xdt:2015031901071000xty:Mnty:IDqty:0.00qoh:0.00qt:0.00qp:0.00wqty:qre:0

我不确定你是否给出了完整的描述,但是在我的Mac上,这成功地符合我的想法(假设文件名为test.txt&#34;在你的工作目录中:

inp <-  system("tr -d '\\' < test.txt", intern=TRUE)
# sed might work too, but I couldn't get the correct sub-pattern.
gsub("[^0-9.]+", " ", inp)
#---------------
[1] " 1520890 2015031901053801 0.00 0.00 0.00 0.00 0"
[2] " 1520897 2015031901064000 0.00 0.00 0.00 0.00 0"
[3] " 1520900 2015031901071000 0.00 0.00 0.00 0.00 0"

如果您有Windows计算机,则可能需要使用shell