r - 在 R 中为时间序列的变化创建指标变量的最简单方法
问题描述
我有一个包含 1400 万行产品、关税税率、贸易量和年月组合的数据集,格式如下:
df <- as.data.frame(matrix(c(1220, "2013-1", 10011900, 29307, .1,
1220, "2013-2", 10011900, 28202, .1,
1220, "2013-3", 10011900, 22383, .15,
1220, "2013-4", 10011900, 21303, .15,
1220, "2013-5", 10011900, 21201, .15,
1220, "2013-1", 10019900, 9960, .12,
1220, "2013-2", 10019900, 10043, .12,
1220, "2013-3", 10019900, 11001, .1,
1220, "2013-4", 10019900, 10997, .1,
1220, "2013-5", 10019900, 12038, .1),
ncol = 5, byrow = T))
colnames(df) <- c("country", "date", "product", "value", "rate" )
我正在尝试在数据中添加一列,这样我就可以用来创建一组指标变量,标记关税税率发生变化之前/之后的几个月。所以,上面看起来像这样:
df_transformed <- as.dataframe(matrix(c(1220, "2013-1", 10011900, 29307, .1, -2,
1220, "2013-2", 10011900, 28202, .1, -1,
1220, "2013-3", 10011900, 22383, .15, 0,
1220, "2013-4", 10011900, 21303, .15, 1,
1220, "2013-5", 10011900, 21201, .15, 2,
1220, "2013-1", 10019900, 9960, .12, -2,
1220, "2013-2", 10019900, 10043, .12, -1,
1220, "2013-3", 10019900, 11001, .1, 0,
1220, "2013-4", 10019900, 10997, .1, 1,
1220, "2013-5", 10019900, 12038, .1, 2)))
colnames(df_transformed) <- c("country", "date", "product", "value", "rate", "months_since_change")
我不确定如何最好地找到关税变量何时发生变化并基于此创建一个新列。
谢谢您的帮助!
解决方案
推荐阅读
- python - 将 64 位整数转换回两个 32 位整数
- postgresql - 在插入行之前,Slick run 方法返回的 Future 成功完成
- javascript - 从 json 到 C# 的日期时间格式
- apache-spark - 如何将不同的数据框组合和排序为一个?
- docker - 詹金斯步骤中的docker音量问题
- mysql - 如何将所有数据库导出为单独的 sql 文件而不是 localhost.sql
- symfony - 获取具有键和值的数组作为我在 DQL 中的选择属性
- python - 设置时出现 wxpython 错误 - ModuleNotFound:没有名为“wx”的模块
- sql - 如何在 Oracle SQL 中添加一个检查总和的约束?
- stripe-payments - Stripe Connect 更新关联账户