R可解析格式的摘要优选JSON

时间:2016-08-26 14:19:15

标签: json r

有没有办法从summary(df)获得一个干净的输出作为JSON或数据框,而不是所有东西都有多余的空格和实际的东西,如" Min:3"在一栏?我想有这样的事情:

[
    {
        "column1": {
            "Min": 1,
            "Max": 3,
            "3rd Qu": 5
            ...
        }
    },

    {
        "column2": {
            "Min": 2,
            "Max": 4,
            "3rd Qu": 5,
            ...
        }
    }
]

1 个答案:

答案 0 :(得分:2)

转换为JSON有很多选项,但您首先需要将数据转换为可以转换所需方式(或根本不需要)的格式。因此,最简单的方法是将摘要组合为一个列表,以便您可以确定JSON的层次结构。使用管道和std::unique_ptr(如purrr::map)以提高可读性:

lapply

返回

library(purrr)

iris %>% map(summary) %>%    # make a list of summaries in case both numeric/factor
    map(as.list) %>%     # coerce each summary to a list
    jsonlite::toJSON(auto_unbox = TRUE, pretty = TRUE)   # convert to JSON, make it legible

如果你不管道,你可以在没有{ "Sepal.Length": { "Min.": 4.3, "1st Qu.": 5.1, "Median": 5.8, "Mean": 5.843, "3rd Qu.": 6.4, "Max.": 7.9 }, "Sepal.Width": { "Min.": 2, "1st Qu.": 2.8, "Median": 3, "Mean": 3.057, "3rd Qu.": 3.3, "Max.": 4.4 }, "Petal.Length": { "Min.": 1, "1st Qu.": 1.6, "Median": 4.35, "Mean": 3.758, "3rd Qu.": 5.1, "Max.": 6.9 }, "Petal.Width": { "Min.": 0.1, "1st Qu.": 0.3, "Median": 1.3, "Mean": 1.199, "3rd Qu.": 1.8, "Max.": 2.5 }, "Species": { "setosa": 50, "versicolor": 50, "virginica": 50 } } 的情况下进行管道:

purrr

返回同样的东西。