【发布时间】:2019-02-16 11:48:12
【问题描述】:
我有两个用于事件研究的数据框,并且在准备数据以进行分析时有些吃力。 df1 有两行包含公司 ID 和事件日期。一些公司有多个事件日期,因此每个事件日期都会列出公司 ID(这意味着列数多于唯一的公司 ID)。另一个 (df2) 包含每家公司的股价:第 1 行是公司 ID,下面的每一行是该特定公司在第 1 列中指定的不同日期的股价。
我想合并(或粘贴?)这两个数据框,以便对于 df1 中的每个公司 ID,它将 df2 的匹配公司 ID(股价)下方的信息复制到自己。
我已经四处寻找解决方案,但目前我似乎不擅长搜索,因为我的搜索没有产生显着的结果。我尝试了不同的合并命令和 expand.grid,但我对 r 生疏了。
df1 <- data.frame(X1 = c("Event date","Company ID"),
X2 = c("2018-01-01","AA"),
X3 = c("2017-05-03","BB"),
X4 = c("2016-04-08","CC"),
X5 = c("2015-02-02","BB"))
df2 <- data.frame(X1 = c("Date","2018-12-31","2018-01-01","2017-05-03","2016-12-31","2016-04-08","2015-02-02"),
X2 = c("AA",100,102,101,98,99,99),
X3 = c("BB",85,78,80,77,75,74),
X4 = c("CC",55,53,54,55,54,54))
df-desired <- data.frame(X1 = c("Event date","Company ID","2018-12-31","2018-01-01","2017-05-03","2016-12-31","2016-04-08","2015-02-02"),
X2 = c("2018-01-01","AA",100,102,101,98,99,99),
X3 = c("2017-05-03","BB",85,78,80,77,75,74),
X4 = c("2016-04-08","CC",55,53,54,55,54,54),
X5 = c("2015-02-02","BB",85,78,80,77,75,74))
我当前的数据类似于 df1 和 df2,我想要的结果是 df-desired。如果有人能帮助我解决我应该研究的命令,我将不胜感激。我想不出我应该把精力花在什么命令上,所以我希望有人能指出我正确的方向!
【问题讨论】:
-
这对于您的
data.frames 来说是一种非常尴尬的格式(df1和df2的第一行似乎包含列名?);你确定示例数据正确吗? -
这是我的实际数据目前的样子,但可能比我想象的更糟? (它弄乱了日期,因为我在第 1 列的第一行中有文本,它保存了日期)。 df1 可以将“事件日期”作为第 1 行的名称,将“公司 ID”作为第 2 行的名称,第一列可以为空并以“日期”作为名称。 df2 可以将“日期”作为第一列的名称,将“公司 ID”作为第 1 行的名称。
-
这些操作的目的是什么?
-
我正在对有关公司的某些事件进行事件研究,调查这些事件是否会影响股价。 df1 包含有关事件发生时间和公司的信息。 df2 包含整个样本中每家公司的股价。因此,对于 df1 中的每个事件日期,我需要获取特定公司在我指定的时间段内的股价
标签: r