计算数据集中正负回报的总数

时间:2017-09-17 14:46:21

标签: r

我试图找到给定数据集的正负回报的总天数。 我尝试使用差异函数来查找公司的回报,然后是子集函数,然后是计数函数。但是它没有给我想要的输出。你能帮忙吗?

工作:

Date          AMZN          GOOG       WFM          MSFT
1/2/2016    574.809998      752      29.959999    54.709999
2/2/2016    552.099976  764.650024   28.93        53
3/2/2016    531.070007  726.950012   28.639999    52.16
4/2/2016    536.26001   708.01001    29.200001    52
5/2/2016    502.130005  683.570007   29.190001    50.16
8/2/2016    488.100006  682.73999    29.379999    49.41
9/2/2016    482.070007  678.109985   29.059999    49.279999
10/2/2016   490.480011  684.119995   28.870001    49.709999
11/2/2016   503.820007  683.109985   28.93        49.689999
12/2/2016   507.079987  682.400024   30.65        50.5
16/02/2016  521.099976  691          30.9        51.09
17/02/2016  534.099976  708.400024   31.76       52.419998
18/02/2016  525         697.349976   31.389999   52.189999
19/02/2016  534.900024  700.909973   31.389999   51.82
22/02/2016  559.5       706.460022   30.66       52.650002

我单独破坏了亚马逊的回报,以了解如何做到这一点并尝试以下方法:

m<-diff(mydf$AMZN)/mydf$AMZN[-length(mydf$AMZN)]
m
n<-subset(m,m<0)
c(n)

计数功能是我用来获取天数的方法。但是,它给了我错误。这是正确的方法吗?输出必须是113天,亚马逊的回报是负数。

需要为整个数据集执行此操作。即查找具有正面和负面回报的总天数。

1 个答案:

答案 0 :(得分:0)

当第T天的价格高于第T-1天的价格时,回报是正数,对吧?这也意味着,您无法知道在第1天,回报是正面还是负面,因为缺少比较日。

根据您的描述,以下内容应该为您提供所需内容:

daily_return <- diff(df$AMZN)

nr_pos <- sum( daily_return > 0)   # 8
nr_neg <- sum( daily_return < 0)   # 6