Итак, я пытаюсь создать анализ, который сравнивает несколько фреймов данных друг с другом.Где вы берете разницу в% от самой последней даты до 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
* Я хочу, чтобы вывод был в порядке, который имеет наибольшую абсолютную разницу, с одним из тикеров числителя в качестве тикера, например: List MOV 9 UA 3 HD 2.4MYL .23
Вместо этого я застрял в цикле, получая
, получая эту ошибку: Ошибка в as.character (x): невозможно привести тип 'замыкание' к вектору типа 'символ '