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

Arrays 在R中将多列转换为Json数组?,arrays,json,r,database,postgresql,Arrays,Json,R,Database,Postgresql,假设我有mtcars数据集,我想取三列并将它们转换成JSON数组。如何将其转换为json数组,并将其传递到POSTGRESQL数据库中 library(jsonlite) df <- mtcars attach(mtcars) json.column <- cbind(mpg,cyl,disp) library(jsonlite) df将数据保存为data.frame,而不是矩阵。使用 json.column <- data.frame(mpg,cyl,disp) toJS

假设我有mtcars数据集,我想取三列并将它们转换成JSON数组。如何将其转换为json数组,并将其传递到POSTGRESQL数据库中

library(jsonlite)
df <- mtcars
attach(mtcars)
json.column <- cbind(mpg,cyl,disp) 
library(jsonlite)

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

json.column <- data.frame(mpg,cyl,disp)
toJSON(json.column)
# [{"mpg":21,"cyl":6,"disp":160},{"mpg":21,"cyl":6,"disp":160}, ...
(对于初学者,切勿使用
attach
!这很危险!通常将
一起使用。)

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

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]}"  
 ...
qq%
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类型设置的,我认为只需像往常一样编写该表就可以了。

太好了,我很想跟上dplyr,这样我就可以使用其他预处理函数了
json.column <- with(mtcars, data.frame(mpg,cyl,disp))
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]}"  
 ...