间隔必须包含两个元素

时间:2021-05-16 20:44:08

标签: r

我正在尝试在数据框中进行子选择:

[ time %bw% '2020-08-06' ]

并且该函数给了我以下错误:

Error in time %bw% "2020-08-06" : interval must contain two elements

这是 df :

> head(GBPUSD_mt5_ticks)

> A tibble: 6 x 5

>  time                  bid   ask price volume
  <dttm>              <dbl> <dbl> <dbl>  <dbl>

> 1 2020-08-05 01:00:00  1.31  1.31  1.31      3

> 2 2020-08-05 01:00:00  1.31  1.31  1.31      3

> 3 2020-08-05 01:00:00  1.31  1.31  1.31      4

> 4 2020-08-05 01:00:00  1.31  1.31  1.31      1

> 5 2020-08-05 01:00:00  1.31  1.31  1.31      3

> 6 2020-08-05 01:00:01  1.31  1.31  1.31      3

我想选择一个间隔,已经尝试过使用相同结构的数据并且一切顺利,尝试将日期和时间放在 %bw% 和同样的问题之后,请有经验的人解释一下?

如果你能教我如何将多天间隔卖给我会很棒

最好的问候

1 个答案:

答案 0 :(得分:2)

错误可以复现:

library(quantTools)

data <- tibble::tibble(time = Sys.time())
data[time %bw% '2020-08-06']
Error in time %bw% "2020-08-06" : interval must contain two elements

这是因为 time 是一个函数而不是 time 列。

试试:

data[data$time %bw% '2020-08-06']

在这种情况下出现错误的原因是您使用了 tibble

这适用于 data.table,如 %bw% documentation

data(ticks)
class(ticks)
#[1] "data.table" "data.frame"

ticks[time %bw% '2020-08-06']
Empty data.table (0 rows and 1 cols): time