我想合并两个数据框,但如果有多个匹配则不想复制行.相反,我想在那一天总结观察结果.
来自?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)
Run Code Online (Sandbox Code Playgroud)
我希望最终的数据框只能列出2012-1-3一次,计数值为2.
当我有merge两个数据帧时,结果的行数比原始数据多.
在这个例子中,所有数据帧有104956行,koppen有3968行,alltest数据帧有130335行.通常,alltest应该有等于或小于all的行.
为什么会出现这种通货膨胀?我不确定是否提供可重复的示例会有所帮助,因为它在我之前使用过的实例中起作用.
alltest <- merge(all, koppen, by = "fips", sort = F)
Run Code Online (Sandbox Code Playgroud)