Как рассчитать перекрывающиеся результаты трехдневного журнала в том же кадре данных в R? - PullRequest
0 голосов
/ 16 мая 2019

Я только начал изучать R. На данный момент у меня есть цены PRC в кадре данных test вместе с датой и несколькими другими переменными.

Моя цель состоит в том, чтобы вычислить следующее в пределах того же кадра данных, чтобы я мог поддерживать связь с датой.
1. Перекрывающийся трехдневный журнал возвращает
2. Однодневный журнал возвращает

В других статьях я придумал следующий код для возвратов трехдневного и однодневного лагов соответственно, но я все еще не уверен, как включить его в мой фрейм данных:

test$logR3 <- diff(log(test$PRC)), lag=3)

Этот код в настоящее время не работает из-за разницы в количестве строк. Как мне это учесть? Могу ли я как-то поставить нули или NA, чтобы заполнить недостающие строки?

Заранее спасибо.

1 Ответ

1 голос
/ 16 мая 2019

может быть что-то вроде:

days=c()
for(i in seq(3,nrow(test),3)){  #loop through it in steps of 3
    one_day_ago_diff=log(test$PRC[i])-log(test$PRC[i-1]) #difference between today and yesterday
    three_days_ago_diff=log(test$PRC[i])-log(test$PRC[i-3]) #difference between today and three days ago
    days=c(days,c(three_days_ago_diff,NA,one_day_ago_diff)) # fills empty vector with diff from 3 days ago- followed by NA to skip 2 days ago and then one day ago
}

if(length(days)<nrow(test)){days=c(days, rep(NA,nrow(test)-length(days)))} #check they're the same length
test$lags=days #add column to test
...