首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并数据格式但保留公共列

合并数据格式但保留公共列
EN

Stack Overflow用户
提问于 2014-07-21 12:35:53
回答 1查看 2.9K关注 0票数 0

我试图使用以下代码使用两个公共列合并两个数据帧。

代码语言:javascript
复制
data = merge(df1, df2,by.x=c("b_id"), by.y=c("e_id"), all=T)

这个很好用。但是有一些行(数据用例)具有第二个数据帧的ID和数据,而不是第一个(反之亦然)。这意味着我为第一个数据帧返回NA行(反之亦然)。

我想知道如何返回一个合并数据集,其中第二个数据帧ID号被附加到合并数据帧中的第一个数据帧ID号。在SPSS或STATA等程序中,如果将两个数据集合并,数据的完整性不同,它就会自动完成这一操作。

我想把这个还给你。

代码语言:javascript
复制
    b_id  dfv1  dfv2
    1101    5   NA
    1102    5   5
    1103    8   9
    1104    NA  3
    1105    NA  12

不是这个!

代码语言:javascript
复制
    b_id  dfv1 dfv2
    1101    5   NA
    1102    5   5
    1103    8   9
    NA      NA  3
    NA      NA  12

在这两个数据文件中:

代码语言:javascript
复制
    b_id  dfv1              
    1101    5               
    1102    5               
    1103    8               
    NA      NA              
    NA      NA              

    e_id    dfv2              
    NA      NA              
    1102    5               
    1103    9               
    1104    3               
    1105    12   

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-21 14:05:00

由于没有提供输入数据,所以很难确定需要什么。根据我从问题中了解到的情况,输入如下:

代码语言:javascript
复制
df1 <- data.frame(b_id = c(1101, 1102, 1103), dfv1 = c(5,5,8))
df2 <- data.frame(e_id = c(1102, 1103,1104,1105), dfv2 = c(5,9,3,12))

> df1
  b_id dfv1
1 1101    5
2 1102    5
3 1103    8

> df2
  e_id dfv2
1 1102    5
2 1103    9
3 1104    3
4 1105   12

现在,如果你跑

代码语言:javascript
复制
merge(df1, df2, by.x = "b_id", by.y = "e_id", all = TRUE)

  b_id dfv1 dfv2
1 1101    5   NA
2 1102    5    5
3 1103    8    9
4 1104   NA    3
5 1105   NA   12

这能回答问题吗?如果没有,请编辑您的问题,以包括输入数据。

更新

提供了输入数据后,现在可以回答您的问题了。这似乎产生了您所提供的输入数据所需要的内容:

代码语言:javascript
复制
merge(df1[complete.cases(df1),], df2[complete.cases(df2),], by.x = "b_id", by.y = "e_id", all = T)

  b_id dfv1 dfv2
1 1101    5   NA
2 1102    5    5
3 1103    8    9
4 1104   NA    3
5 1105   NA   12

因此,基本上,您排除了每个data.frame中不完整的所有行,并合并了两个行(这将创建一些新的NA,就像您想要的输出一样)。

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

https://stackoverflow.com/questions/24865248

复制
相关文章

相似问题

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