【发布时间】:2020-02-01 00:57:04
【问题描述】:
我有这样的功能
adstock <- function(x, rate) {
adstocked_variable <- x
for (i in 1:(length(x)-1) ) {
adstocked_variable[i+1] <- x[i + 1] + (rate * adstocked_variable[i])
}
adstocked_variable
}
还有一个像这样的费率向量:
rates <- seq(0.00, 1, 0.25)
如何将 adstock 函数映射到 mtcars 中的每一列,为rates 向量中的每个数字映射一次?
我希望输出看起来像这样:
$mpg
mpg_0.00 mpg_0.25 mpg_0.5
1 21.0 21.00000 21.00000
2 21.0 26.25000 31.50000
3 22.8 29.36250 38.55000
4 21.4 28.74062 40.67500
5 18.7 25.88516 39.03750
6 18.1 24.57129 37.61875
7 14.3 20.44282 33.10938
8 24.4 29.51071 40.95469
$cyl
cyl_0.00 cyl_0.25 cyl_0.5
1 6 6.000000 6.000000
2 6 7.500000 9.000000
3 4 5.875000 8.500000
4 6 7.468750 10.250000
5 8 9.867188 13.125000
6 6 8.466797 12.562500
7 8 10.116699 14.281250
8 4 6.529175 11.140625
我尝试了以下变体但没有成功
library(tidyverse)
mtcars %>%
map(~adstock(., rates))
【问题讨论】:
-
您可能需要
map(mtcars, ~ map(rates, function(x) .x + x))
标签: r functional-programming purrr