parsing来自string的数据

我认为这是有经验的程序员一直在做的事情。 但是,由于我的编程经验有限,请耐心等待。

我有一个Excel文件,其中包含特定的单元格条目

[[{“from”:“4”,“response”:true,“value”:20},{“from”:“8”,“response”:true,“value”:20},{“from” :“9”,“response”:true,“value”:20},{“from”:“3”,“response”:true,“value”:20}],[{“from”:“14” ,“response”:false,“value”:20},{“from”:“15”,“response”:true,“value”:20},{“from”:“17”,“response” ,“value”:20},{“from”:“13”,“response”:true,“value”:20}]]

现在,对于每一个这样的条目,我想把每一个大括号中的信息,并从中做出一行数据。 每个这样的行将有3列。 例如,从大括号内的第一个条目形成的行应分别具有条目“4”“真”和“20”。 我发布的部分应该给我6个这样的行,并且对于n次这样的重复,我将以6n行和4列(标识符,加上提到的3列)的matrix结束。

什么是最有效的方法来做到这一点? 通过“这样做”我的意思是学习的技巧,然后执行它。 在我的实验室中,我可以访问不less软件包(Excel,Stata,Matlab,R),所以不应该成为问题。

这看起来像一个JSON风格的文件。 你得到的实际上是两个数据对象的列表。 我们可以用jsonlite包把它们变成Rdataframe。 尝试这个:

 txt <- '[[{"from": "4", "response": true, "value": 20}, {"from": "8", "response": true, "value": 20}, {"from": "9", "response": true, "value": 20}, {"from": "3", "response": true, "value": 20}], [{"from": "14", "response": false, "value": 20}, {"from": "15", "response": true, "value": 20}, {"from": "17", "response": false, "value": 20}, {"from": "13", "response": true, "value": 20}]]' library(jsonlite) rbind.pages(fromJSON(txt)) ## just fromJSON(txt) for the list # from response value # 1 4 TRUE 20 # 2 8 TRUE 20 # 3 9 TRUE 20 # 4 3 TRUE 20 # 5 14 FALSE 20 # 6 15 TRUE 20 # 7 17 FALSE 20 # 8 13 TRUE 20 

如果这是在一个文件中,并且该文件被称为例如"new.txt" ,那么你可以使用

 rbind.pages(fromJSON(readLines("new.txt")))