我遇到了一个问题,迫使我使用循环而不是我喜欢的dplyr管道流。
我想根据相同值的连续观察对行进行分组。例如,如果前四个观测值type相等a,则前四个观测值应分配到同一组。顺序很重要,所以我不能dplyr::group_by和dplyr::summarize。
下面的代码应该很好地解释了这个问题。我想知道是否有人可以提出一种不太冗长的方法来做到这一点,最好使用tidyverse包,而不是data.tables.
library(tidyverse)
# Crete some test data
df <- tibble(
id = 1:20,
type = c(rep("a", 5), rep("b", 5), rep("a", 5), rep("b", 5)),
val = runif(20)
)
df
#> # A tibble: 20 x 3
#> id type val
#> <int> <chr> <dbl>
#> 1 1 a 0.0606
#> 2 2 a 0.501
#> 3 3 a 0.974
#> 4 4 a 0.0833
#> …Run Code Online (Sandbox Code Playgroud) 编辑:感谢哈维尔的建议。我忘了提到我想将此交互式绘图合并到报告/仪表板中,因此适用于来自 RMarkdown 的 HTML 文档的东西将是理想的,但仪表板解决方案也可以。
考虑以下情节;红线代表实际数据,而绿线描绘模型生成的预测:
显示两个不同模型的预测;一个训练了前 100 小时,另一个训练了前 216 小时。然后为看不见的数据点生成预测,然后绘制。
我想做的是训练n模型,例如。以扩大的窗口方式每 12 小时一次。完成此操作后,我想以交互方式呈现结果,用户可以单击/滑动某些东西来前后移动垂直线,从而更改显示哪个模型的预测。关键是要直观地显示不同训练长度的效果。
我是 R 中闪亮和交互式绘图的新手;这可以在没有太多麻烦的情况下完成吗?