合并不同的数据帧
Merging disparate data frames
所以这个问题涉及合并两个不同长度的数据帧..
示例代码:
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]]
我想做的是将 "w_dat" 中的计数合并到 "p_i" 数据框中,按日期组织,这样我就可以回归 p_i 中的任一索引针对给定范围内的计数,每个范围都是一个唯一的列。
抱歉,我混淆了 w_d
和 w_dat
您可以使用 dplyr
。
library(dplyr)
mydf <- full_join(p_i, w_d, by = "date")
如果您还想删除缺失的行,请使用 filter(mydf, !is.na(index_1))
。
所以我修改了 Daniel 提供的答案,通过包含以下几行来构建完整的数据框:
w_sum<-ddply(w_dat, .(xmin,xmax,ymax), summarize,date=xmax,count=count)
mydf <- full_join(p_i, w_sum, by = "date")
这给了我一个新的新数据框,它实际上是前两个数据框的交集。
所以这个问题涉及合并两个不同长度的数据帧..
示例代码:
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]]
我想做的是将 "w_dat" 中的计数合并到 "p_i" 数据框中,按日期组织,这样我就可以回归 p_i 中的任一索引针对给定范围内的计数,每个范围都是一个唯一的列。
抱歉,我混淆了 w_d
和 w_dat
您可以使用 dplyr
。
library(dplyr)
mydf <- full_join(p_i, w_d, by = "date")
如果您还想删除缺失的行,请使用 filter(mydf, !is.na(index_1))
。
所以我修改了 Daniel 提供的答案,通过包含以下几行来构建完整的数据框:
w_sum<-ddply(w_dat, .(xmin,xmax,ymax), summarize,date=xmax,count=count)
mydf <- full_join(p_i, w_sum, by = "date")
这给了我一个新的新数据框,它实际上是前两个数据框的交集。