满足忽略 NA
Cumprod ignoring NA
我想生成应用了 comprod 函数的数据框,忽略 NA
x = data.frame(a=c(NA,1,2,3),b=c(NA,5,6,7))
> cumprod(x)
a b
1 NA NA
2 NA NA
3 NA NA
4 NA NA
我想要的结果是,
> cumprod(x)
a b
1 NA NA
2 1 5
3 2 30
4 6 210
有什么简单有效的想法吗?
任何东西乘以 1 又只是它本身,所以:
x[] <- lapply(x, function(i) cumprod(replace(i,is.na(i),1)) * ifelse(is.na(i),NA,1) )
x
# a b
#1 NA NA
#2 1 5
#3 2 30
#4 6 210
我想生成应用了 comprod 函数的数据框,忽略 NA
x = data.frame(a=c(NA,1,2,3),b=c(NA,5,6,7))
> cumprod(x)
a b
1 NA NA
2 NA NA
3 NA NA
4 NA NA
我想要的结果是,
> cumprod(x)
a b
1 NA NA
2 1 5
3 2 30
4 6 210
有什么简单有效的想法吗?
任何东西乘以 1 又只是它本身,所以:
x[] <- lapply(x, function(i) cumprod(replace(i,is.na(i),1)) * ifelse(is.na(i),NA,1) )
x
# a b
#1 NA NA
#2 1 5
#3 2 30
#4 6 210