将缺少的唯一行添加到data.frame
所以我有两个不同长度的数据帧。我试图通过添加tdx缺少的dx行,使它们具有相似的长度。在本例中,tdx缺少Age==“UNSP”的行。我有其他数据集可能缺少不同的行;我正在寻找一种方法来识别缺少哪些行,然后为输出添加这些行;年份列(对于该行)将是NA值 更清楚地说,输出将是一个数据帧,tx和tdx数据并排显示,性别和年龄匹配。 以下是我尝试过的内容(感谢Richard指出我忘记添加此内容)将缺少的唯一行添加到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,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