![](/img/trans.png)
[英]How do I aggregate messy quarterly data in R using Tidyverse, searching for first contiguous set of four quarters
[英]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.