r - 如何在 R 中从两个 data.frames 创建一个(不平衡)面板?

标签 r merge dataframe panel

我有两个 data.frames,我想将它们合并并变成一个面板。第一个 data.frame 是平衡面板,第二个是不平衡面板:

第一个 data.frame 如下所示:

date1 <- c("2012-01-01","2012-01-02","2012-01-03","2012-01-04","2012-01-05","2012-01-01","2012-01-02","2012-01-03","2012-01-04","2012-01-05")
company1 <- c("A","A","A","A","A","B","B","B","B","B")
ret1 <- c(-0.01, -0.013, 0.02, 0.032, -0.002, 0.022, 0.012, 0.031, -0.018, -0.034)

mydf1 <- data.frame(date1, company1, ret1)
mydf1

        date1 company1   ret1
1  2012-01-01        A -0.010
2  2012-01-02        A -0.013
3  2012-01-03        A  0.020
4  2012-01-04        A  0.032
5  2012-01-05        A -0.002
6  2012-01-01        B  0.022
7  2012-01-02        B  0.012
8  2012-01-03        B  0.031
9  2012-01-04        B -0.018
10 2012-01-05        B -0.034

第二个 data.frame 如下所示:

date2 <- c("2012-01-02","2012-01-04","2012-01-05","2012-01-01","2012-01-04")
company2 <- c("A","A","A","B","B")
class2 <- c("p", "p", "x", "n", "x")

mydf2 <- data.frame(date2, company2, class2)
mydf2

       date2 company2 class2
1 2012-01-02        A      p
2 2012-01-04        A      p
3 2012-01-05        A      x
4 2012-01-01        B      n
5 2012-01-04        B      x

所以第一行和第二行实际上是同一件事:日期和公司名称。现在我想将第一个数据帧(此处:ret1)的剩余列获取到第二个数据帧中。当然,我希望它们位于正确的行。我怎样才能做到这一点?面板应如下所示:

        date  company  class     ret
1 2012-01-02        A      p  -0.013
2 2012-01-04        A      p   0.032
3 2012-01-05        A      x  -0.002
4 2012-01-01        B      n   0.022
5 2012-01-04        B      x  -0.018

最佳答案

我认为你可以使用合并。但也许首先更改列名称以获得您想要的输出。

names(mydf1)=c("date","company","ret")
names(mydf2)=c("date","company","class")
merge(mydf1, mydf2, by.x=intersect(names(mydf1), names(mydf2)))

另请参阅: Matching multiple columns on different data frames and getting other column as result

关于r - 如何在 R 中从两个 data.frames 创建一个(不平衡)面板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22244308/

相关文章:

python - 用循环合并两个不同的数据帧(python)

重命名多个数据框中的列,R

r - 更改 geom_spoke 中箭头的方向

python - 以最佳方式迭代 pandas 中的数百万行

r - 按行和列合并 df R

svn - 有来自一个 SVN 项目的 2 个产品 - 如何只为一个产品保留某些更改?

python - 如何使用 pandas 读取 csv、附加新数据以及写入新的 csv

R Markdown ,kable_styling() 中的\rowcolor 问题

r - 将字符串转换为日期,格式为 : "dd.mm.yyyy"

python - 将索引上的数据框与 Pandas 合并