r - R数据表中的滞后财务数据
问题描述
我有一个包含多个财务数据的数据集,包括一些基本面。例如,我从 4 月获得了债务数据,但实际上应该是 12 月。因为它们是在稍后发布的,所以我必须将它们滞后于 appr。4个月。
这就是我的数据的样子(插图)
k <- c("gvkey1" , "gvkey1" , "gvkey1" , "gvkey1", "gvkey2", "gvkey2", "gvkey2", "gvkey2", "gvkey2", "gvkey3", "gvkey3")
l <- c("Date1", "Date2", "Date3", "Date4" , "Date5" , "Date6" , "Date7" , "Date8" , "Date9" , "Date10" , "Date11" )
m <- c(1:11)
y <- structure(list(a = l, b = k, c = m), .Names = c("Date", "gvkey" , "DLCQ"),
row.names = c(NA, -11L), class = "data.frame")
Date gvkey DLCQ
1 Date1 gvkey1 1
2 Date2 gvkey1 2
3 Date3 gvkey1 3
4 Date4 gvkey1 4
5 Date5 gvkey2 5
6 Date6 gvkey2 6
7 Date7 gvkey2 7
8 Date8 gvkey2 8
9 Date9 gvkey2 9
10 Date10 gvkey3 10
11 Date11 gvkey3 11
这是我已经尝试过的代码:
x <- shift(y$DLCQ, 4L)
然而,这给了我一个单一的向量,基本上“删除”了所有其他列(日期、gvkey)。
[1] NA NA NA NA 1 2 3 4 5 6 7
它应该看起来像这样:
Date gvkey DLCQ
1 Date1 gvkey1 NA
2 Date2 gvkey1 NA
3 Date3 gvkey1 NA
4 Date4 gvkey1 NA
5 Date5 gvkey2 1
6 Date6 gvkey2 2
7 Date7 gvkey2 3
8 Date8 gvkey2 4
9 Date9 gvkey2 5
10 Date10 gvkey3 6
11 Date11 gvkey3 7
此外,由于我的数据是长格式的,因此代码应该为每个 gvkey 单独运行(例如,使用 ,by =gvkey)。
谢谢约翰内斯
解决方案
推荐阅读
- java - ChangeListener 和 InvalidationListener javafx 的区别
- python - 向django发送ajax请求并更新html
- java - 使用 log4j 和 Solarlint 兼容记录异常的正确方法
- javascript - 在javascript中同时迭代和比较两个对象
- javascript - 为什么将变量分配给“textContent”元素必须位于页面底部?
- mysql - 将两列与另一个表的相同字段连接起来
- github - GitHub API - 获取作者对存储库的评论总数
- c++ - 从“void”类型的返回值没有可行的转换
- c++ - C++ 代码因分段错误而终止?
- go - 如何在 Go 中捕获任意 UNIX 信号