【发布时间】:2019-08-08 10:29:54
【问题描述】:
我正在尝试计算一些函数,然后根据结果传播我的数据。
代码和数据:
-- 预处理:
library(tidyquant)
library(tsfeatures)
data(FANG)
FANG_returns <- FANG %>%
group_by(symbol) %>%
tq_transmute(select = adjusted,
mutate_fun = periodReturn,
period = "daily",
type = "arithmetic")
FANG_returns
有效的代码:
FANG_returns %>%
filter(symbol == "FB") %>%
mutate(ent = entropy(daily.returns))
不起作用的代码:
FANG_returns %>%
filter(symbol == "FB") %>%
mutate(max = max_level_shift(daily.returns))
错误:
错误:列
max的长度必须为 1008(组大小)或 1,而不是 2
函数max_level_shift返回两列:
max_level_shift(AirPassengers)
#> max_level_shift time_level_shift
#> 54.5 117.0
我怎样才能spread我的数据,以便我通过以下方式获得我的数据:
> FANG_returns %>%
+ filter(symbol == "FB") %>%
+ summarise(ent = entropy(daily.returns))
# A tibble: 1 x 2
symbol ent max_level_shift time_level_shift
<chr> <dbl> <dbl> <dbl>
1 FB 0.991 0.0573yyy 0.92764zzzz
任何指针都会很棒。
【问题讨论】: