我有以下简单的向量:
a = c(1,0,0,1,0,0,0,0)
我想得到一个向量(b),对于a中的每个指标x,如果a[x]是1,我们让它保持原样,如果它是0,我们计算a[x-1]+1,直到下一个1:
b = c(1,2,3,1,2,3,4,5)
我try 使用map():
map(
.x = seq(1,(length(a))),
.f = function(x) {
a[x] = ifelse(a[x]==1, a[x], a[x-1]+1)
a})
显然,这不起作用,因为贴图不会更新a向量.如何使用map()完成此操作.甚至可以更新map()之外的内容吗?