首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并R中的数据帧

合并R中的数据帧
EN

Stack Overflow用户
提问于 2012-01-27 01:14:43
回答 1查看 1K关注 0票数 1

假设我有两个数据帧。每个变量都有一个DAY、一个月和一个年份列,以及另外一个变量C和P。我想以两种不同的方式合并这两个数据帧。首先,我按数据合并:

代码语言:javascript
复制
test<-merge(data1,data2,by.x=c("DAY","MONTH","YEAR"),by.y=c("DAY","MONTH","YEAR"),all.x=T,all.y=F)

这个可以完美地工作。第二个合并就是我遇到麻烦的那个。因此,我目前已经将来自data1的1996年1月5日的值和来自data2的1996年1月5日的值合并到一个数据框中,但现在我想将第三个值合并到新数据框的每一行。具体地说,我希望将data2中1996年1月4日的值与1996年1月5日的两个值合并。如何让merge以这种方式变得灵活,有什么建议吗?

示例数据:

代码语言:javascript
复制
data1
C DAY MONTH YEAR
1   1     1 1996
6   5     1 1996
5   8     1 1996
3  11     1 1996
9  13     1 1996
2  14     1 1996
3  15     1 1996
4  17     1 1996    

data2
P DAY MONTH YEAR
1   1     1 1996
4   2     1 1996
8   3     1 1996
2   4     1 1996
5   5     1 1996
2   6     1 1996
7   7     1 1996
4   8     1 1996
6   9     1 1996
1  10     1 1996
7  11     1 1996
3  12     1 1996
2  13     1 1996
2  14     1 1996
5  15     1 1996
9  16     1 1996
1  17     1 1996
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-27 01:27:24

创建一个Date类型的新列,而不仅仅是一些日、月、年整数。您可以使用as.Date()来完成此操作,不过您需要在给定字符串的情况下查找format=参数的正确格式。让我们将该列命名为D1。现在做data1$D2 = data1$D1 + 1。这里的关键点是日期类型允许简单的日期运算。现在只需通过x=D1和y=D2合并即可。

如果这让人困惑,底线是您需要将列转换为Date类型,以便可以进行date运算。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9022273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档