скажем, у меня есть tibble
(или data.table
), который состоит из двух столбцов:
a <- tibble(id = rep(c("A", "B"), each = 6), val = c(1, 0, 0, 1 ,0,1,0,0,0,1,1,1))
Кроме того, у меня есть функция с именем myfun
, которая принимает числовой вектор произвольной длины в качестве входных данныхи возвращает одно число.Например, вы можете думать о myfun
как о стандартном отклонении.
Теперь я хотел бы создать третий столбец для моего tibble
(называемого результатом), который содержит выходные данные myfun
, примененные кval накопил и сгруппировал относительно id.Например, первая запись результата должна содержать mfun(val[1])
.Вторая запись должна содержать myfun(val[1:2])
и т. Д.Я хотел бы реализовать накопленную версию myfun.
Конечно, существует множество простых решений за пределами tidyverse
с использованием циклов, а что нет.Но мне было бы интересно найти решение в рамках tidyverse
или в рамках data.table
.
Любая помощь приветствуется.