因此,我正在尝试创建一个将多个数据帧相互比较的分析。您从最近日期到30天前的百分比差异。然后输出在30天内移动时间百分比最大的列表。 我能够轻松地从Tiingo提取数据,创建每个数据集的配对分析。我想我为此创建了一个for循环,但这使事情变得困难。由于该日期被视为时间戳,因此我想将其分开并放在其自己的列中。我将这个循环放在一起,它将行名更改为一列,然后得到我想要的%差异。我不确定另一部分,如何对它们进行排名。我想这与嵌套循环有关吗?但是到目前为止,这是我遇到的问题:现在,如果我愿意的话,我可以手动完成每个任务。但我计划将其扩大到更大的列表,这可能会很耗时:
library(ggplot2)
library(tseries)
library(tidyverse)
library(lubridate)
library(tibble)
library(dplyr)
library(digest)
setDefaults("getSymbols.tiingo", api.key="your key")
symbols2 <- c('UA', 'UAA','MYL','TEVA','HD','LOW','MOV', 'FOSL')
loadSymbols(symbols2,src='tiingo',from ="2018-2-01")
r1 <- as.data.frame((MOV$MOV.Close) / (FOSL$FOSL.Close))
r6 <- as.data.frame(HD$HD.Close / LOW$LOW.Close)
r7 <- as.data.frame(MYL$MYL.Close / TEVA$TEVA.Close)
r9 <- as.data.frame(UA$UA.Close / UAA$UAA.Close)
i <- list(r1,r6, r7, r9,)
这是事情变得混乱的地方!
`for(j in i){
chg <- rownames_to_column(j, var = "date")
chg1 <- j %>%
mutate(date = ymd(date)) %>%
rename(ratio = Ratio) }`
这显示了%变化
j = (tail(i[,2],1) - head(tail(i[,2],30),1))/head(tail(i[,2],30),1)*100
*我希望输出以绝对差最大的顺序排列,以分子代码之一作为代码,例如: 清单 MOV 9 UA 3 HD 2.4 MYL .23
得到此错误: as.character(x)中的错误:无法将类型'closure'强制转换为类型'character'的向量