簡體   English   中英

我如何在 r 中滯后四分之一?

[英]How do I lag Quarters in r?

首先也是最重要的 - 感謝您查看我的問題 - 無論您是否回答。

我正在嘗試將包含 Quarter 值的滯后值的列添加到我的 DF,但是,當我這樣做時,我收到以下警告:

Warning messages:
1: In mutate_impl(.data, dots) :
 Vectorizing 'yearqtr' elements may not preserve their attributes

以下是我的示例數據(我的數據始於 2018 年 1 月 3 日)

Ticker  Price   Date      Quarter
  A       10    1/3/18    2018 Q1
  A       13.5  2/15/18   2018 Q1
  A       12.9  4/2/18    2018 Q2
  A       11.2  5/3/18    2018 Q2
  B       35.2  1/4/18    2018 Q1
  B       33.1  3/2/18    2018 Q1
  B       31    4/6/18    2018 Q2
 ...      ...   ...        ...
  XYZ     102    5/6/18   2018 Q2

我有一張大桌子,上面有多個股票和多個日期。 我計算季度列的方式是:

df$quarter <- lag(as.yearqtr(df$Date))

但是 - 我無法添加會滯后於季度值的列。 有人知道可能的解決方法嗎?

我想要以下輸出:

Ticker  Price   Date      Quarter  Lag_Q
  A       10    1/3/18    2018 Q1   NA
  A       13.5  2/15/18   2018 Q1   NA
  A       12.9  4/2/18    2018 Q2   2018 Q1
  A       11.2  5/3/18    2018 Q2   2018 Q1
  B       35.2  1/4/18    2018 Q1   NA
  B       33.1  3/2/18    2018 Q1   NA
  B       31    4/6/18    2018 Q2   2018 Q1
 ...      ...   ...        ...
  XYZ     102    5/6/18   2018 Q2   2018 Q1

首先,我建議組織您的數據,以便每一列代表單個證券的價格,每一行代表一個特定的日期。 從那里,您可以輕松地轉換所有證券,但我不確定您的最終目標是什么。 xts包非常好,已經在c進行了優化,是一種證券行業標准。 我強烈建議探索它。 但這超出了您的帖子的范圍!

但是,對於您的數據結構,一行應該做:

df$lag_Q <- as.yearqtr( ifelse(test = (df$quarter=="2018 Q1"), 
                                yes = NA, 
                                 no = df$quarter-0.25) )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM