所以我有两个不同长度的数据帧。我试图通过添加缺少tdx的dx中的行来使它们具有相似的长度。在这种情况下,tdx缺少Age ==“UNSP”的行。我有其他可能缺少不同行的数据集;我想找到一种方法来识别哪些行丢失,然后输出添加这些行;年份列(对于该行)将是NA值。
更明确地说,输出将是一个数据框,其中tx和tdx数据并排,性别和年龄相匹配。
以下是我的尝试(感谢理查德指出我忘记添加此内容)
(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
答案 0 :(得分:0)
最终工作的是merge(dx, tdx, by=c('Gender','Age'), all=TRUE)
谢谢马特。