首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向长格式数据集中添加标识符(元数据)列

向长格式数据集中添加标识符(元数据)列
EN

Stack Overflow用户
提问于 2013-08-01 17:48:13
回答 1查看 140关注 0票数 0

给定这样的长格式数据集:

代码语言:javascript
复制
ID_2<-c('A','A','A','B','B','C','E','E','F','F','H','H','H')
Type<-c('Blk','Wht','Gre','Blk','Wht','Blk','Blk','Wht','Blk','Wht','Wht','Blk','Gre')
Count<-c(1,2,2,1,2,1,2,1,2,1,2,1,2)
DF2<-data.frame(ID_2,Type,Count)

我想为每个唯一ID (ID_2)添加一组特定的元数据。元数据可以在如下的单独数据框架中找到:

代码语言:javascript
复制
Year<-c(2005,2005,2006,2006,2007,2008,2008,2008)
Location<-c('EAST','EAST','WEST','WEST','NORTH','EAST','EAST','EAST')
Site<-c(1,2,3,4,5,6,7,8)
ID_1<-c('A','B','C','NAN','E','F','NAN','H')
DF1<-data.frame(Year,Location,Site,ID_1)

我希望将来自DF1的元数据添加到DF2的长格式中(匹配ID_1和ID_2),以便DF2的每一行都包含来自DF1的适当元数据。

我还需要处理空白位置,这样来自DF_1的任何唯一站点编号如果在DF_2中没有相应的数据条目,就会得到一个标记条目。最终结果将如下所示:

代码语言:javascript
复制
Year  Location  Site  ID Type Count
2005     EAST    1    A  Blk     1
2005     EAST    1    A  Wht     2
2005     EAST    1    A  Gre     2
2005     EAST    2    B  Blk     1
2006     WEST    3    C  Blk     1
2007    NORTH    5    E  Blk     2
2007    NORTH    5    E  Wht     1
2008     EAST    6    F  Blk     2
2008     EAST    6    F  Wht     1
2008     EAST    8    H  Wht     2
2008     EAST    8    H  Blk     1
2008     EAST    8    H  Gre     2
2006     WEST    4  Flag Flag   -999
2008     EAST    7  Flag Flag   -999
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-01 17:52:28

这似乎是一个简单的merge()

代码语言:javascript
复制
> merge(DF1, DF2, by.x = "ID_1", by.y = "ID_2", all = TRUE)
   ID_1 Year Location Site Type Count
1     A 2005     EAST    1  Blk     1
2     A 2005     EAST    1  Wht     2
3     A 2005     EAST    1  Gre     2
4     B 2005     EAST    2  Blk     1
5     B 2005     EAST    2  Wht     2
6     C 2006     WEST    3  Blk     1
7     E 2007    NORTH    5  Blk     2
8     E 2007    NORTH    5  Wht     1
9     F 2008     EAST    6  Blk     2
10    F 2008     EAST    6  Wht     1
11    H 2008     EAST    8  Wht     2
12    H 2008     EAST    8  Blk     1
13    H 2008     EAST    8  Gre     2
14  NAN 2006     WEST    4 <NA>    NA
15  NAN 2008     EAST    7 <NA>    NA

您需要做一些额外的工作来用您实际想要使用的任何东西来替换NA值。

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

https://stackoverflow.com/questions/18001095

复制
相关文章

相似问题

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