【问题标题】:Count how many days log return between 0.01 and 0.015计算 0.01 到 0.015 之间的日志返回天数
【发布时间】:2018-10-16 00:24:30
【问题描述】:

我是 R 的新手。我在 R 中有一个数据框,用于记录一年调整后的收盘价的对数回报。以下是数据示例:

data <- read.csv("AAPL-Data.csv")
df <- data.frame(Log_Returns = diff(log(Ad(data))))
    Log_Returns 
1  6.326076e-03
2  1.824152e-02
3  3.683450e-03
4  -4.434373e-03
5  -2.394487e-02
6  1.729473e-03
7  -5.121480e-04
8  5.937422e-03
9  -4.401654e-03
10  6.373016e-03
11 3.520299e-02
12 2.225889e-02
13 1.381963e-02
14 -1.280049e-02
15 7.283613e-03
16 2.577874e-02
17 1.009374e-02
18 3.208668e-03
19 8.147066e-03
20 -2.044707e-03

我需要使用 R 来计算 0.01 到 0.015 之间的日志返回天数。不知道如何在不使用view(df) 查看表格并手动计算结果的情况下执行此操作。有没有我可以使用的函数来做到这一点?

【问题讨论】:

  • length(df[df$Log_Returns &gt; 0.01 &amp; df$Log_Returns &lt; 0.015, 'Log_Returns'])
  • 谢谢!这行得通。比我想象的要简单。

标签: r


【解决方案1】:

sum(df$Log_Returns &gt;= 0.01 &amp; df$Log_Returns &lt;= 0.015)

【讨论】:

    【解决方案2】:

    您也可以使用tidyverse 方法。

    require(tidyverse)
    df %>% 
      summarise(between = sum(Log_Returns > 0.01 & Log_Returns < 0.015), 
                notBetween = sum(!(Log_Returns > 0.01 & Log_Returns < 0.015)))
    

    结果:

      between notBetween
    1       2         18
    

    数据:

    df <- read.csv(text =  "Log_Returns 
                 6.326076e-03
                 1.824152e-02
                  3.683450e-03
                  -4.434373e-03
                  -2.394487e-02
                  1.729473e-03
                  -5.121480e-04
                  5.937422e-03
                  -4.401654e-03
                  6.373016e-03
                 3.520299e-02
                 2.225889e-02
                 1.381963e-02
                 -1.280049e-02
                 7.283613e-03
                 2.577874e-02
                 1.009374e-02
                 3.208668e-03
                 8.147066e-03
                 -2.044707e-03")
    

    【讨论】:

      猜你喜欢
      • 2019-12-24
      • 1970-01-01
      • 2015-02-26
      • 2019-09-27
      • 2017-08-11
      • 1970-01-01
      相关资源
      最近更新 更多