我有以下R数据框:
df[df.C>df.C.quantile(1-(5/len(df)))]
我希望JSON输出为
Values
Type1 123
Type2 4565
Type3 7812
数字字段可以引用
我使用jsonlite toJSON,输出为:
{"Type1":123, "Type2":4565, "Type3":7812}
答案 0 :(得分:4)
使用rjson
的解决方案:
df <- data.frame(Values = c(123, 4565, 7812))
rownames(df) <- paste0("Type", 1:3)
library(rjson)
toJSON(setNames(df$Values, rownames(df)))
[1] "{\"Type1\":123,\"Type2\":4565,\"Type3\":7812}"
答案 1 :(得分:0)
jsonlite
实际上是在保留您的数据结构,即保持您的 rownames (Type1
,Type2
,Type3
)。
无论如何,使用jsonlite可以获得相同的行为:
> jsonlite::toJSON(df %>% t() %>% tibble::as_data_frame())
[{"Type1":123,"Type2":4565,"Type3":7812}]
请注意,使用此解决方案,您将丢失原始列名Values
。如果行名称很重要但不是列名称,则应考虑以不同的方式定义数据,因为处理rownames
可以获得messy。您可以将Type作为第二列添加或转置数据 - 一行,与类型一样多的列。