从R

时间:2016-02-05 14:58:34

标签: json 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 个答案:

答案 0 :(得分:1)

您的每一行看起来都是JSON格式(但不是整个文件,所以我们不能只是解析它)。您可以将每行作为列表返回,然后列出结果列表

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

将为您提供包含所有数据的列表(列表..)列表