所以我有两个不同长度的数据帧。我试图通过添加tdx丢失的dx中的行来使它们具有类似的长度。在这种情况下,tdx缺少年龄== "UNSP“的行。我有其他可能缺少不同行的数据集;我希望找到一种方法来识别哪些行丢失,然后为输出添加这些行;而年份列(对于该行)将是NA值。
更清楚的是,的输出将是一个与tx和tdx并排的数据框架,在这里性别和年龄匹配。。
以下是我尝试过的(感谢Richard指出我忘记添加这个)
(extra <- rbind(dx[8,],dx[16,]))
(extra[,3] <- NA)
ttdx <- rbind(extra,tdx, deparse.level = 1)
然后我把它安排回到了正常状态。它可以工作,但我更希望有一种更高效和自动化的方法(对于我的其他数据集)
如果我更好地知道如何通过计算机识别data.frames之间的差异,我可能会使用dplyr
或reshape2
来添加缺少的行。
> head(dx,n = 12L)
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
> head(tdx, n = 12L)
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
发布于 2014-10-13 03:23:56
最终起作用的是merge(dx, tdx, by=c('Gender','Age'), all=TRUE)
谢谢马特。
https://stackoverflow.com/questions/26332037
复制相似问题