我试图找到给定数据集的正负回报的总天数。 我尝试使用差异函数来查找公司的回报,然后是子集函数,然后是计数函数。但是它没有给我想要的输出。你能帮忙吗?
工作:
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天,亚马逊的回报是负数。
需要为整个数据集执行此操作。即查找具有正面和负面回报的总天数。
答案 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