R 向长格式数据集添加标识符(元数据)列
给定如下长格式数据集:R 向长格式数据集添加标识符(元数据)列,r,dataframe,metadata,R,Dataframe,Metadata,给定如下长格式数据集: 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) Year Lo
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)
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
这似乎是一个简单的
merge()
>合并(DF1,DF2,by.x=“ID\u 1”,by.y=“ID\u 2”,all=TRUE)
ID_1年位置站点类型计数
1 A 2005东区1座1
2 A 2005东1西隧2
3 A 2005东区1 Gre 2
4 B 2005东区2号1座
5 B 2005东2西隧2
6 C 2006西3栋1
7东2007北5栋2
8东2007北5西隧1
2008年9楼东6座2
10楼2008东6西隧1
11小时2008东8西隧2
12小时2008东8栋1
13 H 2008东8 Gre 2
14 NAN 2006西4 NA
15南2008东7北
你需要做一些额外的工作,用你真正想要使用的任何东西来替换
NA
值。很好的一点-我想合并两个数据帧,它们必须有相同的行数。我看我错了。最后,替换NA的----Merged$Count[is.NA(Merged$Count)]
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
> 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