The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
A package of R htmlwidgets to interactively view and maybe
modify lists
. As of now, listviewer
provides an interface to jsoneditor
and react-json-view
.
listviewer
is designed to support multiple interfaces.
CRAN
install.packages("listviewer")
Development Version
::install_github("timelyportfolio/listviewer") devtools
jsoneditor
is a really well designed JSON
interactive editor by Jos de Jong. Since most R
data can be represented in JSON
, we can use this great
JavaScript
library in R
.
# using the data from the jsoneditor simple example
# in R list form
library(listviewer)
jsonedit(
list(
array = c(1,2,3)
boolean = TRUE
,null = NULL
,number = 123
,object = list( a="b", c="d" )
,string = "Hello World"
,
) )
# also works with data.frames
jsonedit( mtcars )
# helpful interactive view of par
jsonedit( par() )
# meta view of the above
jsonedit(jsonedit(par()))
See the above interactive view of par for yourself.
I got this idea courtesy of @jasonpbecker on Twitter.
htmlwidgets
dependencies are defined by YAML
.
Let’s see the dependencies for jsonedit
.
jsonedit(
yaml.load_file(system.file("htmlwidgets/jsonedit.yaml",package="listviewer"))
)
How about topojson
?
### experiment with topojson
library(httr)
library(pipeR)
library(listviewer)
# topojson for Afghanistan
= "https://gist.githubusercontent.com/markmarkoh/8856417/raw/6178d18115d9f273656d294a867c3f83b739a951/customAfghanMap.topo.json"
url_path
%>>%
url_path %>>%
GET content( as = "text") %>>%
jsonedit
react-json-view
is another very nice JSON
interactive editor. We even get
copy/paste! All of the above examples should also work with
reactjson
.
# using the data from the jsoneditor simple example
# in R list form
library(listviewer)
reactjson(
list(
array = c(1,2,3)
boolean = TRUE
,null = NULL
,number = 123
,object = list( a="b", c="d" )
,string = "Hello World"
,
) )
listviewer
works with Shiny
but the
implementation is crude and likely to change for jsonedit
while reactjson
integration is much better. If you really
want to use jsonedit
with Shiny
, I would
recommend debouncing
the change
callback. Here
are examples with each.
library(shiny)
library(listviewer)
# put some data in environment so it will show up
data(mtcars)
<- shinyUI(
ui fluidPage(
jsoneditOutput( "jsed" )
)
)
<- function(input,output){
server $jsed <- renderJsonedit({
outputjsonedit(
::toJSON(mtcars, auto_unbox = TRUE, data.frame = "rows")
jsonlite"onChange" = htmlwidgets::JS('function(after, before, patch){
, console.log( after.json )
}')
)
})
}
runApp( list( ui = ui, server = server ) )
library(shiny)
library(listviewer)
# put some data in environment so it will show up
data(mtcars)
<- shinyUI(
ui fluidPage(
reactjsonOutput( "rjed" )
)
)
<- function(input,output){
server $rjed <- renderReactjson({
outputreactjson( jsonlite::toJSON(mtcars, auto_unbox = TRUE, data.frame = "rows") )
})
observeEvent(input$rjed_edit, {
str(input$rjed_edit, max.level=2)
})
}
runApp( list( ui = ui, server = server ) )
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.