R-пакет, который извлекает R-объекты со всей скрытой информацией (атрибуты et c.) В json - PullRequest
0 голосов
/ 22 января 2020

Моя ситуация такова: у меня есть объект R с именами столбцов, атрибутами и т. Д. c.

data(iris)
robj = scale(iris[, 1:4])
str(robj)

#  num [1:150, 1:4] -0.898 -1.139 -1.381 -1.501 -1.018 ...
#  - attr(*, "dimnames")=List of 2
#   ..$ : NULL
#   ..$ : chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
#  - attr(*, "scaled:center")= Named num [1:4] 5.84 3.06 3.76 1.2
#   ..- attr(*, "names")= chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
#  - attr(*, "scaled:scale")= Named num [1:4] 0.828 0.436 1.765 0.762
#   ..- attr(*, "names")= chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"

Я думал, этот объект R должен быть полностью отображен в json, так что на другом языке программирования, например Python, я могу взять его и получить все данные, в том числе скрытые атрибуты.

Но я пока не нашел ни одного пакета R, который делал бы то, что я хотел.

Я пытался:

install.packages("rjson")
robj_rjson <- rjson::toJSON(robj)
# robj_rjson is a simple list - not metainfo preserved, not even the dimensions of the matrix

install.packages("jsonlite")
robj_jsonlite <- jsonlite::toJSON(robj)
# robj_jsonlite is at least a list of list, so at least dimensions are preserved
# but all meta infos (column names, attributes etc.) list

devtools::install_github("skgrange/threadr")
threadr::write_json(X, file="iris_scaled_threadr.json")

############################################################
# in python:
import json

def read_json(fpath):
    with open(fpath) as f:
        return json.load(f)

read_json("iris_scaled_threadr.json")
# list of list but no metainfos preserved
###############################################################

install.packages("RJSONIO")
RJSONIO::toJSON(robj)
# list of dictionaries, each dictionary being the values of a row
# with the names of the columns
# so this packages at least preserves the names.
# But all other meta informations (attributes) are lost also in this package.

Кто-нибудь знает пакет R, который сохранит всю метаинформацию в формате json?

Сравнение этого парня пакетов R json довольно разрушительный: https://rstudio-pubs-static.s3.amazonaws.com/31702_9c22e3d1a0c44968a4a1f9656f1800ab.html

...