我有时间序列回报,我想根据日期范围获取产品。
=product(if($B:$B,A:A,">="&$A$2,A:A,"<="&A13))
不起作用,因为这个函数有太多参数。这是一个例子,
12/31/2014 100.30%
01/31/2015 100.72%
02/28/2015 102.00%
03/31/2015 101.04%
04/30/2015 99.79%
05/31/2015 101.04%
06/30/2015 99.46%
07/31/2015 100.71%
08/31/2015 97.05%
09/30/2015 96.21%
10/31/2015 101.88%
11/30/2015 100.21%
12/31/2015 99.68%
01/31/2016 98.06%
02/29/2016 97.74%
03/31/2016 100.83%
Run Code Online (Sandbox Code Playgroud)
我想要得到 2015 年回报率的乘积。在本例中,它是 99.62%。请帮忙。
我的数据集类似于以下内容:
df <- data.frame(
A = c(-1, 2, 3),
B = c(1, 1, -1))
df
# A B
# 1 -1 1
# 2 2 1
# 3 3 -1
Run Code Online (Sandbox Code Playgroud)
我试图得到以下的结果,其中值保持当两个A
和B
是正的:
A B
1 NA NA
2 2 1
3 NA NA
Run Code Online (Sandbox Code Playgroud)
我已经试过df2 <- apply(df, 1:2, function(x) if (x > 0) x else NA)
,但它返回值当任A
或B
为正.如何添加第二个条件?