我如何在 r 中滞后 Quarters?
How do I lag Quarters in r?
首先 - 感谢您查看我的问题 - 无论您是否回答。
我正在尝试将包含季度值滞后值的列添加到我的 DF,但是,这样做时我收到以下警告:
Warning messages:
1: In mutate_impl(.data, dots) :
Vectorizing 'yearqtr' elements may not preserve their attributes
下面是我的示例数据(我的数据从 1/3/2018 开始)
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
我有一个巨大的 table,其中包含多个股票和多个日期。我计算季度列的方式是:
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
中进行了优化,属于证券行业标准。我强烈建议探索它。但这超出了您 post!
的范围
虽然对于您的数据结构,单行应该做:
df$lag_Q <- as.yearqtr( ifelse(test = (df$quarter=="2018 Q1"),
yes = NA,
no = df$quarter-0.25) )
首先 - 感谢您查看我的问题 - 无论您是否回答。
我正在尝试将包含季度值滞后值的列添加到我的 DF,但是,这样做时我收到以下警告:
Warning messages:
1: In mutate_impl(.data, dots) :
Vectorizing 'yearqtr' elements may not preserve their attributes
下面是我的示例数据(我的数据从 1/3/2018 开始)
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
我有一个巨大的 table,其中包含多个股票和多个日期。我计算季度列的方式是:
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
中进行了优化,属于证券行业标准。我强烈建议探索它。但这超出了您 post!
虽然对于您的数据结构,单行应该做:
df$lag_Q <- as.yearqtr( ifelse(test = (df$quarter=="2018 Q1"),
yes = NA,
no = df$quarter-0.25) )