Я реализовал часть библиотеки оболочки для htmlwidgets rstudio, которая отображает сводную таблицу. Пакет находится здесь.
Пакет хорошо работает с data.tables и data.frame (как и должно!). Например, это работает с радужной оболочкой. С другой стороны, если я попытаюсь преобразовать iris в data.table, мой пакет (на самом деле htmlwidgets - который внутренне использует RJSONIO) выдает ошибку.
Я знаю, что это кажется запутанным, но вы можете воспроизвести ошибку, просто проверив разницу между следующими кодами:
library(data.table)
library(RJSONIO)
data.table(fromJSON(toJSON(data.table(iris))))
Результат отличается от набора данных дорогой радужной оболочки глаза:
V1
1: 5.1,4.9,4.7,4.6,5.0,5.4,
2: 3.5,3.0,3.2,3.1,3.6,3.9,
3: 1.4,1.4,1.3,1.5,1.4,1.7,
4: 0.2,0.2,0.2,0.2,0.2,0.4,
5: setosa,setosa,setosa,setosa,setosa,setosa,
С другой стороны, jsonlite может правильно перестроить радужную оболочку (просто не забудьте отключить RJSONIO перед запуском кода):
library(data.table)
library(jsonlite)
data.table(fromJSON(toJSON(data.table(iris))))
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1: 5.1 3.5 1.4 0.2 setosa
2: 4.9 3.0 1.4 0.2 setosa
3: 4.7 3.2 1.3 0.2 setosa
4: 4.6 3.1 1.5 0.2 setosa
5: 5.0 3.6 1.4 0.2 setosa
Я не уверен, связана ли проблема с data.table или RJSONIO ...