有没有办法从summary(df)
获得一个干净的输出作为JSON或数据框,而不是所有东西都有多余的空格和实际的东西,如" Min:3"在一栏?我想有这样的事情:
[
{
"column1": {
"Min": 1,
"Max": 3,
"3rd Qu": 5
...
}
},
{
"column2": {
"Min": 2,
"Max": 4,
"3rd Qu": 5,
...
}
}
]
答案 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
返回同样的东西。