2016-02-05 151 views
0

我有如下的文本文件:从一个纯文本文件中读取数字中的R

{"time":"2015-11-15T17:56:45.300","x":93.32,"y":8.6,"s":4.57,"dis":0.45,"on_field":true,"game":{"references":[{"origin":"gsis","id":2015111500}]},"team":{"references":[{"origin":"gsis","id":"5110"}]},"play":{"references":[{"origin":"ngs","id":""}]},"references":[{"origin":"gsis","id":"00-0026189"}]} 
{"time":"2015-11-15T17:56:45.400","x":93.77,"y":8.48,"s":4.55,"dis":0.47,"on_field":true,"game":{"references":[{"origin":"gsis","id":2015111500}]},"team":{"references":[{"origin":"gsis","id":"5110"}]},"play":{"references":[{"origin":"ngs","id":""}]},"references":[{"origin":"gsis","id":"00-0026189"}]} 
{"time":"2015-11-15T17:56:45.500","x":94.23,"y":8.36,"s":4.53,"dis":0.47,"on_field":true,"game":{"references":[{"origin":"gsis","id":2015111500}]},"team":{"references":[{"origin":"gsis","id":"5110"}]},"play":{"references":[{"origin":"ngs","id":""}]},"references":[{"origin":"gsis","id":"00-0026189"}]} 
{"time":"2015-11-15T17:56:45.600","x":94.67,"y":8.23,"s":4.51,"dis":0.46,"on_field":true,"game":{"references":[{"origin":"gsis","id":2015111500}]},"team":{"references":[{"origin":"gsis","id":"5110"}]},"play":{"references":[{"origin":"ngs","id":""}]},"references":[{"origin":"gsis","id":"00-0026189"}]} 
{"time":"2015-11-15T17:56:45.700","x":95.1,"y":8.08,"s":4.5,"dis":0.46,"on_field":true,"game":{"references":[{"origin":"gsis","id":2015111500}]},"team":{"references":[{"origin":"gsis","id":"5110"}]},"play":{"references":[{"origin":"ngs","id":""}]},"references":[{"origin":"gsis","id":"00-0026189"}]} 

我试图提取datetimexysdis变量和将它们保存在R数据框中。我想我可以找到一种方法来用shell脚本清理它,然后在R中读取它,但我希望有一些很好的技巧可以在R中完成。谢谢

回答

1

您的每行都显示为JSON格式(但不是整个文件,因此我们不能仅仅解析它)。你可以返回每行一个列表,然后使结果

res <- readLines("test.txt") 
library(jsonlite) 
allofit <- sapply(res, fromJSON) 

,这将给你一个列表的列表清单(清单..)包含所有数据

+0

谢谢。看到输出后,我想最好的方法是使用awk和sed将数据切换成更易于管理的形式。 – mzakaria