合并不同的数据框架

时间:2015-03-24 16:04:26

标签: r ggplot2

所以这个问题涉及合并两个不同长度的数据帧。

示例代码:

library(ggplot2)
p_i = data.frame(date=sample(1:40,20,replace=F),index_1 = runif(20,0,1),index_2 = runif(20,0,2))

p_i<-p_i[with(p_i,order(date)),]
w_d = data.frame(date=c(1:40),C=runif(40,2,38))
y_w <- seq(0, 40, length = 9)
x_w <- c(unique(p_i$date))


p_w <- ggplot(w_d, aes(x = date, y = C))+ 
    geom_bin2d(breaks = list(x = x_w, y = y_w))+
    scale_fill_continuous(low = "#99CCFF", high = "#CC0000", space = "Lab", na.value = "grey50", guide = "colourbar")


w_dat <- ggplot_build(p_w)$data[[1]]

我想要做的是从&#34; w_dat&#34;合并到&#34; p_i&#34;数据框,按日期组织,因此我可以将p_i中的任何一个索引与给定范围内的计数相对应,每个范围都是唯一的列。

2 个答案:

答案 0 :(得分:1)

抱歉,我将w_dw_dat

混淆了

您可以使用dplyr

library(dplyr)
mydf <- full_join(p_i, w_d, by = "date")

如果您还想删除有缺失的行,请使用filter(mydf, !is.na(index_1))

答案 1 :(得分:0)

所以我调整了Daniel提供的答案,通过包含以下几行来构建完整的数据框:

w_sum<-ddply(w_dat, .(xmin,xmax,ymax), summarize,date=xmax,count=count)

mydf <- full_join(p_i, w_sum, by = "date")

这为我提供了一个新的数据帧,它实际上是前两个数据帧的交集。