我正在绘制几个ggplot2对象并将它们置于grid.arrange内部调用'pdf'设备.我发现如果我首先光栅化这些图表,PDF的性能会提高十亿倍(生成速度更快,渲染速度更快).所以在一个并行dlply循环中,我正在使用ggsave将其ggplot2作为PNG 编写,然后使用readPNG它来重新读取并rasterGrob转换为返回它dlply.在dlply将其放入一个列表grobs,其grid.arrange然后绘制到PDF设备.
其中一些似乎不实用,所以一般来说,有更好的方法吗?但真正让我感到困惑的是将PNG写入磁盘,而我所做的就是将它们读回来.有没有办法将grob直接保存到rasterGrob?
plot.list <- dlply( ... {
ggsave(filename= fname
,plot= my.plot
,device= "png"
,scale = 1, width= 1.1, height= 2.125, units = "in"
,dpi = dpi)
# return it as a list of rasters
rasterGrob(readPNG( source= fname, info= TRUE))
}
Run Code Online (Sandbox Code Playgroud) 我正在向想要使用http://json2csharp.com/将数据字符串转换为对象数组的C# 开发人员发送数据。我认为 jsonlite 包对此有好处,但他没有得到他想要的结果,当我检查生成的输出时,它并不是我所期望的。我对这种情况的解释是生成的输出
x <- list(
a=list( a=1,b='x',c=list("Foo","Bar"), d=as.Date("2015-01-01") ),
b=list( a=2,b='y',c=list("Hello","World"), d=as.Date("2014-12-31") ),
c=list( a=3,b='z',c=NULL, d=as.Date("2016-02-29") )
)
toJSON(x, pretty = FALSE )
Run Code Online (Sandbox Code Playgroud)
曾是
{"a":{"a":[1],"b":["x"],"c":[["Foo"],["Bar"]],"d":["2015-01-01"]},"b":{"a":[2],"b":["y"],"c":[["Hello"],["World"]],"d":["2014-12-31"]},"c":{"a":[3],"b":["z"],"c":{},"d":["2016-02-29"]}}
Run Code Online (Sandbox Code Playgroud)
它将所有子元素数据放入列表中,同时将父命名列表视为命名元素的对象。R 没有与 JSON 设计的相同类型的类型,所以这可能是 toJSON 的预期行为,但我想要更像
[{"a":1,"b":"x","c":["Foo","Bar"],"d":"2015-01-01"},{"a":2,"b":"y","c":["Hello","World"],"d":"2014-12-31"},{"a":3,"b":"z","c":{},"d":"2016-02-29"}]
Run Code Online (Sandbox Code Playgroud)
如何将 R 中的列表写入 jsonlite 中的 JSON 数组?