我开发了一个R软件包来估算药理学模型的参数。这些模型可以预测一段时间内人体中药物的浓度。我现在正在为此开发一个不错的绘图库。
我理想的API看起来与ggplot
非常相似。数据的初始定义,以及随后的添加图形元素的层。
ggplot(model, observed=observations, treatment=paracetamol) +
stat_observations(geom="point") +
stat_prediction(geom="line") +
stat_prediction_se(geom="ribbon", level=0.95, nsimulations=500)
我可以创建新的Stat对象(例如StatPrediction
),这些对象可以构建正确的data.frame以通过基础几何。但是,此Stat对象需要访问原始模型以模拟新数据!我正在努力选择实现此目标的最佳方法...
fortify()
创建一个“神” data.frame,其中包含我们可能需要的所有信息。我也可以使用broom::tidy()
。但是,这很笨拙。我不知道前面的nsimulations
参数,所以不知道我应该对模型执行多少次模拟。fortify()
创建一个“伪” data.frame,并使用attr(data, "model") <- model
将我的原始模型添加到data.frame。使用computeLayer
函数在StatPrediction
对象中取回该原始对象。这似乎是“骇人听闻的”。 ggplot适用于真正的data.frame
,而不适合我的自定义版本... ggplot.myModel
,创建带有模型插槽的特殊ggplot
对象。实现ggplot_add.StatPrediction(object, plot, object_name)
,因为这是获取原始plot
对象并查找模型的唯一方法。有没有其他人对类似问题进行过彻底的实施?