我在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中的行数不是我所期望的。
例如:
我通过小数据集测试此问题,但我的数据集非常大(853467行)。
所以我无法测试出了什么问题? 合并命令是否适合我的需要?
答案 0 :(得分:1)
如果我理解你的问题,这应该有效:
result <- merge(children, HHchar, by = "ID")
一般来说,这些功能的作用如下: 合并(firstDF,secondDF,by.x = ColumnToJoinOnInFirstDF,by.y = ColumnToJoinOnInSecondDF)