【发布时间】:2012-02-08 09:00:45
【问题描述】:
我想合并两个数据框,但如果有多个匹配项,我不想重复行。相反,我想总结当天的观察结果。
来自 ?merge: 两个数据框中与指定列匹配的行被提取并连接在一起。 如果有多个匹配项,则所有可能的匹配项各贡献一行。
下面是一些示例代码:
days <- as.data.frame(as.Date(c("2012-1-1", "2012-1-2", "2012-1-3", "2012-1-4")))
names(days) <- "Date"
obs.days <- as.data.frame(as.Date(c("2012-1-2", "2012-1-3", "2012-1-3")))
obs.days$count <- 1
colnames(obs.days) <- c("Date", "Count")
df <- merge(days, obs.days, by.x="Date", by.y="Date", all.x=TRUE)
我希望最终的数据框只列出一次 2012-1-3,计数值为 2。
【问题讨论】:
-
days和z.days一样吗?在这种情况下,您是否希望最终数据帧具有计数为 {1,2,3,1} 的 2012-1-{1,2,3,4} ? (注意obs.days有 2 个2012-1-3和days有 1 个) -
是的,我刚刚编辑了 z.days 到几天。谢谢你抓住它。您在下面的答案具有预期的输出。我已经尝试过 reshape,但我想我接下来需要学习 plyr。谢谢!