Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
提取、格式化和分离已存储在数据帧列中的JSON_Json_R_Jsonlite - Fatal编程技术网

提取、格式化和分离已存储在数据帧列中的JSON

提取、格式化和分离已存储在数据帧列中的JSON,json,r,jsonlite,Json,R,Jsonlite,如何解析和处理已经存在于数据帧中的JSON 样本数据: df <- data.frame( id = c("x1", "x2"), y = c('[{"Property":"94","Value":"Error"},{"Property":"C1","Value":"Found Match"},{"Property":"C2","Value":"Address Mismatch"}]', '[{"Property":"81","Value":"XYZ"},{"Proper

如何解析和处理已经存在于数据帧中的JSON

样本数据:

df <- data.frame(
    id = c("x1", "x2"), 
    y = c('[{"Property":"94","Value":"Error"},{"Property":"C1","Value":"Found Match"},{"Property":"C2","Value":"Address Mismatch"}]', '[{"Property":"81","Value":"XYZ"},{"Property":"D1","Value":"Blah Blah"},{"Property":"Z2","Value":"Email Mismatch"}]')
)

df使用
jsonlite
和tidyverse:

library(tidyverse)
library(jsonlite)

df %>% mutate(y = map(y, ~fromJSON(as.character(.x)))) %>% unnest()

# Source: local data frame [6 x 3]
# 
#       id Property            Value
#   <fctr>    <chr>            <chr>
# 1     x1       94            Error
# 2     x1       C1      Found Match
# 3     x1       C2 Address Mismatch
# 4     x2       81              XYZ
# 5     x2       D1        Blah Blah
# 6     x2       Z2   Email Mismatch
或者只使用
dplyr
jsonlite

df %>% rowwise() %>% do(data.frame(id = .$id, fromJSON(as.character(.$y))))
do.call(rbind, 
        Map(function(id, y){data.frame(id, fromJSON(as.character(y)))}, 
            df$id, df$y))
或者只使用base R和
jsonlite

df %>% rowwise() %>% do(data.frame(id = .$id, fromJSON(as.character(.$y))))
do.call(rbind, 
        Map(function(id, y){data.frame(id, fromJSON(as.character(y)))}, 
            df$id, df$y))

所有返回的内容都相同,因此请选择对您最有意义的内容。

请包括您尝试的代码和出现的任何错误。我们可以使用
库(dplyr);绑定行(lappy(setNames(as.list(df$y),df$id),函数(x)fromJSON(as.character(x)),.id=“id”)