所以这个问题涉及合并两个不同长度的数据帧。
示例代码:
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中的任何一个索引与给定范围内的计数相对应,每个范围都是唯一的列。
答案 0 :(得分:1)
抱歉,我将w_d
与w_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")
这为我提供了一个新的数据帧,它实际上是前两个数据帧的交集。