Моя ситуация такова: у меня есть объект 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