首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中将多列转换为Json数组?

问在R中将多列转换为Json数组?
EN

Stack Overflow用户
提问于 2017-05-01 16:38:37
回答 2查看 732关注 0票数 1

假设我有mtcar数据集,我想取三个列并将它们转换为一个JSON数组。如何将其转换为json数组,这是否可能将它们传递到POSTGRESQL数据库?

代码语言:javascript
复制
library(jsonlite)
df <- mtcars
attach(mtcars)
json.column <- cbind(mpg,cyl,disp) 

我使用toJSON()吗?

代码语言:javascript
复制
mtcars.json <- toJSON(json.column)

https://cran.r-project.org/web/packages/jsonlite/vignettes/json-aaquickstart.html

对象数组{"name":"Erik","age":43},{"name":"Anna","age":32} Data Frame simplifyDataFrame

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-01 18:18:29

将数据保持为data.frame,而不是矩阵。使用

代码语言:javascript
复制
json.column <- data.frame(mpg,cyl,disp)
toJSON(json.column)
# [{"mpg":21,"cyl":6,"disp":160},{"mpg":21,"cyl":6,"disp":160}, ...

此外,您应该避免使用attach()。如果您忘记了detach(),它可能会造成许多问题。另外,您可以经常使用with()来避免它。

代码语言:javascript
复制
json.column <- with(mtcars, data.frame(mpg,cyl,disp))
票数 2
EN

Stack Overflow用户

发布于 2017-05-01 18:29:17

(首先,千万不要使用attach!太危险了!(通常使用with。)

有很多方法可以做到这一点。下面是如何使用dplyr创建值:

代码语言:javascript
复制
qq <- rowwise(mtcars) %>% 
    mutate(newcol=as.character(jsonlite::toJSON(list(mpg=mpg, cyl=cyl, disp=disp))))
> qq$newcol
 [1] "{\"mpg\":[21],\"cyl\":[6],\"disp\":[160]}"     "{\"mpg\":[21],\"cyl\":[6],\"disp\":[160]}"    
 [3] "{\"mpg\":[22.8],\"cyl\":[4],\"disp\":[108]}"   "{\"mpg\":[21.4],\"cyl\":[6],\"disp\":[258]}"  
 ...

从这里开始,如果您的Postgres数据库是以newcol作为JSON类型设置的,我认为只需要像往常一样编写该表就可以了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43722758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档