【发布时间】:2018-05-30 08:33:43
【问题描述】:
假设我有一个由两列组成的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 框架内的解决方案感兴趣。
感谢任何帮助。
【问题讨论】:
标签: r dataframe dplyr tidyverse purrr