Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从R中的json中获取列及其相应的数据_R - Fatal编程技术网

如何从R中的json中获取列及其相应的数据

如何从R中的json中获取列及其相应的数据,r,R,我有一个json格式的数据,我需要在R中提取该数据,但我希望json中的列(字段)作为数据帧中的字段,以及字段下面的相应数据 一些json数组: [{"from": {"category": "k", "name": "p", "id": "12"}, "like_count": 0, "can_remove": false, "created_time": "2015-11-20T04:19:27+0000", "message": "Hello Aleks, we are sorry to

我有一个json格式的数据,我需要在R中提取该数据,但我希望json中的列(字段)作为数据帧中的字段,以及字段下面的相应数据

一些json数组:

[{"from": {"category": "k", "name": "p", "id": "12"}, "like_count": 0, "can_remove": false, "created_time": "2015-11-20T04:19:27+0000", "message": "Hello Aleks, we are sorry to read about your experience, please contact us via private message so we can better assist you.", "id": "10153685805887457_10153685807007457", "user_likes": false}, {"from": {"name": "Aleks Vujovic", "id": "524130559029"}, "like_count": 0, "can_remove": false, "created_time": "2015-11-20T04:23:31+0000", "message": "I would love to but noare available.", "id": "10153685805887457_10153685812162457", "user_likes": false}]

我不确定我是否理解你的问题(澄清一下就好了),但也许这就是解决你问题的办法。此代码将JSON转换为数据帧

library(rjson)
library(plyr)

json = '[{"name":"John","age":20},
{"name":"Martin","age":30}]'

data = fromJSON(json)

frame = do.call("rbind.fill", lapply(data, as.data.frame))
根据评论中的问题澄清:

首先,在CSV文件中保留引号以正确读取JSON很重要。在这里,我将替换默认设置,将“和”视为字符串分隔符:

c = read.csv2("C:\\Users\\Ardavel\\Desktop\\f.csv", header = T, quote="\'")
然后我得到包含JSON数据的列:

d = c$series.data
然后我提取数据本身:

x = levels(d)[d]
最后,我可以使用与原始答案相同的方法:

data = fromJSON(x[1])
frame = do.call("rbind.fill", lapply(data, as.data.frame))

如果您有多个CSV行,我将让您自己从CSV中的所有行一起获取结果。

您已经尝试过什么?您是否搜索过类似的问题(包括答案)?如果您仍然需要提问,请提供答案,以便我们可以处理和测试。[{“发件人”:{“类别”:“k”,“姓名”:“p”,“id”:“12”},”例如:0,“can_remove”:false,“created_time”:“2015-11-20T04:19:27+0000”,“message”:“Hello Aleks,我们很抱歉了解您的经历,请通过私人消息与我们联系,以便我们能更好地帮助您。”,“id”:“10153685805887457_10153685807007457”,“user_”:false},{“from”:{“姓名”:“Aleks Vujovic”,“id”:“524130559029”例如:0,“can_remove”:false,“created_time”:“2015-11-20T04:23:31+0000”,“message”:“我很想去,但没有空”,“id”:“10153685805887457\u 10153685812162457”,“user_likes”:false}]从这些数据中,我想提取列作为字段,并将它们准确地保存在ryes中,但代码中的json没有从json执行,并引发了一个错误。我们可以为列表和因子执行此操作吗?当我将json复制到我的代码中时,它工作正常。您确定安装了rjson包吗?是的。当我为列表执行此操作时,它不接受insetead它显示了一个只有文本才能执行的错误。请给我一些示例,以便我能够准确地理解您的问题。我以为您的数据是JSON格式的,而不是列表格式的。实际上,在一个数据帧中,其中一个字段包含此JSON数据。因此,我将该字段提取到另一个变量中。现在它是factor格式的。So我的想法是将数据转换成与您的示例相同的数据帧。但也不例外。这就是我的问题所在…所以请帮助我