Arrays 在R中将多列转换为Json数组?
假设我有mtcars数据集,我想取三列并将它们转换成JSON数组。如何将其转换为json数组,并将其传递到POSTGRESQL数据库中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
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]}"
...