将缺少的唯一行添加到data.frame

将缺少的唯一行添加到data.frame,r,dplyr,reshape2,R,Dplyr,Reshape2,所以我有两个不同长度的数据帧。我试图通过添加tdx缺少的dx行,使它们具有相似的长度。在本例中,tdx缺少Age==“UNSP”的行。我有其他数据集可能缺少不同的行;我正在寻找一种方法来识别缺少哪些行,然后为输出添加这些行;年份列(对于该行)将是NA值 更清楚地说,输出将是一个数据帧,tx和tdx数据并排显示,性别和年龄匹配。 以下是我尝试过的内容(感谢Richard指出我忘记添加此内容) >头部(tdx,n=12L) 最终起作用的是merge(dx,tdx,by=c('Gender','Age

所以我有两个不同长度的数据帧。我试图通过添加tdx缺少的dx行,使它们具有相似的长度。在本例中,tdx缺少Age==“UNSP”的行。我有其他数据集可能缺少不同的行;我正在寻找一种方法来识别缺少哪些行,然后为输出添加这些行;年份列(对于该行)将是NA值

更清楚地说,输出将是一个数据帧,tx和tdx数据并排显示,性别和年龄匹配。

以下是我尝试过的内容(感谢Richard指出我忘记添加此内容)

>头部(tdx,n=12L)


最终起作用的是
merge(dx,tdx,by=c('Gender','Age'),all=TRUE)


谢谢马特

您尝试过什么吗?使用
expand.grid
创建一个主列表,首先包含所有组合,然后
merge
将您的数据与此相对应,例如:
master您已经就此数据集问了很多问题。比起让这么多人为你编写程序,花时间多学一点R可能是值得的。@RichardScriven哎呀,我应该解释一下我试过的。请容忍我,它的效率太低了。我用tdx缺少的行将dx子集(即
(额外@hrbrmstr我希望我有时间。学习R对我来说必须是一个体验式的学习机会,如果这违反了SO社区的指导原则,我很抱歉。合并工作很好,但这是一种使用dplyr
左联合(dx,tdx,by=c('Gender','Age'))的方法。
(extra <- rbind(dx[8,],dx[16,]))
(extra[,3] <- NA)

ttdx <- rbind(extra,tdx, deparse.level = 1)
   Gender   Age Year.10 Year.11 Year.12 Year.13
1  FEMALE   0-2   48020   43120   39120   14360
2  FEMALE   3-9   87930  101850   98750   85400
3  FEMALE 10-19    5700   47730   53590   18800
4  FEMALE 20-39  147230  134560   62090   71120
5  FEMALE 40-59  202770  142230  116120   98830
6  FEMALE 60-64   34980   49170   46260  110120
7  FEMALE   65+  256240  296710  254040  266690
8  FEMALE  UNSP    5500      NA      NA      NA
9    MALE   0-2   75170   52990   28110   32160
10   MALE   3-9   66360   89840   79220   39470
11   MALE 10-19   62960   15060   26700   26310
12   MALE 20-39   39670  145380  101880   94500
   Gender   Age Year.10 Year.11 Year.12 Year.13
1  FEMALE   0-2   36800   24560   25790   12400
2  FEMALE   3-9   77980   75810   79560   74450
3  FEMALE 10-19    5700   47730   51470   18800
4  FEMALE 20-39  147230  102400   42360   58190
5  FEMALE 40-59  179550  112510  105000   79140
6  FEMALE 60-64   33800   37380   35040   83670
7  FEMALE   65+  206270  202790  185460  225620
8    MALE   0-2   59930   46350   28110   26490
9    MALE   3-9   53260   62770   71350   32380
10   MALE 10-19   60490   15060   25260   20660
11   MALE 20-39   32490  132830   94950   88640
12   MALE 40-59   57950   70370  149790  136730