我在R中有两个数据帧。第一个包含有关家庭的一些信息,另一个包含有关家庭 的所有儿童的一些信息的第一个,如:(HHchar数据帧)合并命令如何工作?
HHchar <- read.table(text="ID familysize
1 4
2 5
3 2
4 3",header=T)
第二个喜欢的:(儿童的数据帧)
children <- read.table(text="ID age gender birthorder
1 26 1 firstchild
1 20 2 secondchild
2 20 1 firstchild
2 18 1 firstchild
2 17 2 secondchild
2 10 1 thirdchild
3 19 1 firstchild
3 12 2 secondchild
4 10 1 firstchild",header=T)
我想这是一个结果:
ID age gender birthorder familysize
1 26 1 firstchild 4
1 20 2 secondchild 4
2 20 1 firstchild 5
2 18 1 secondchild 5
2 17 2 thirdchild 5
3 19 1 firstchild 4
3 12 2 secondchild 4
4 10 1 firstchild 3
对于这个结果我使用这个命令:
b2 <- merge (children ,HHchar,by="ID", all.x= TRUE)
我想通过这个命令可以从HHchar数据框中提取关于在儿童数据框中报告的人的所有信息,并且将构建b2数据框。
但是发生了一些不好的事情,我发现b2中的行数并不是我所期望的。
例如:
- 在HHchar我们有4个家族等4行 在儿童的数据帧
- 我们有9名儿童和9行
- 在B2我预计9行,但它超越9
我测试这个问题的小数据集,但我的数据集非常大(853467行)。
所以我不能测试什么是错的? 合并命令是否适合我的需要?
您可以使用以下方式访问功能文档:?merge。那里有例子。 [这是一个流行的问题,关于你需要更多类似于合并的方法](http://stackoverflow.com/questions/1299871/how-to-join-data-frames-in-r-inner-outer-left-对)。 – marbel
我真的不明白你想要什么,例如在你想要的输出中,子数据框有一个缺失的行。但是如果你想在合并后得到一些结果,你可以使用'subset'。 (我认为合并工作正常,只是你没有想到这个结果。) – Llopis
似乎你在结果中缺少一个ID = 2的行,这是故意的吗? “合并(孩子,HHchar)”是我理解你的问题所需要的。 –