【发布时间】:2013-07-13 02:24:29
【问题描述】:
我有两个数据框——一个很大(超过 200 万行),一个较小(大约 300,000 行)。较小的数据帧是较大数据帧的子集。唯一的区别是较大的有一个附加属性,我需要将其添加到较小的属性中。
具体来说,大数据框的属性是(日期、时间、地址、标志),小数据框的属性是(日期、时间、地址)。我需要以某种方式将正确的相应标志值放入每行的较小数据框中。 “合并”数据框的最终大小应与我的较小数据框相同,从大数据框中丢弃未使用的行。
最好的方法是什么?
更新:我用以下方法测试了合并功能:
new<-merge(data12, data2, by.x = c("Date", "Time", "Address"),
by.y=c("Date", "Time", "Address"))
和
new<-merge(data12, data2, by = c("Date", "Time", "Address"))
两者都返回具有正确数量的属性的空数据框(新)以及以下警告消息:
Warning message:In `[<-.factor`(`*tmp*`, ri, value = c(15640, 15843, 15843, 15161, : invalid factor level, NAs generated
【问题讨论】:
-
merge默认只返回两个输入匹配的行。 -
如果我使用merge,返回的数据框的大小会等于较小的那个吗?
-
嗯,它会有一些来自更大的信息......你为什么要合并。看
?merge -
显然,我希望有一个附加属性。我的意思是行数等于较小的行数。
-
@whistler 提供一个简短的示例对您来说是件好事——但这样做,您会发现
merge完全符合您的要求。