我有一个站点和日期的数据框架:
dat<-data.frame(Site = rep(c('a', 'b', 'c', 'd', 'e'),each = 5),
Date = rep(c(1,2,3,4,5),5))
我使用for循环来下载基于网站和日期的流量数据。在循环的下一次迭代之前,我想将站点日期条目的流数据附加到此数据帧中。我可以这样做:
# example flow data
q1<-data.frame(Site = rep(c('a'),5),
Date = c(1,2,3,4,5),
dailyQ = c(NA, 70, 65, NA, 41))
# left join to add flow data
library(dplyr)
dat<-left_join(dat,q1,by = c("Site" = "Site", "Date" = "Date"))
然而,在下一次迭代中,此方法将为dailyQ创建一个新列:
# next loop iteration flow dataframe
q2<-data.frame(Site = rep(c('b'),5),
Date = c(1,2,3,4,5),
dailyQ = c(43, 55, NA, NA, 72))
# appending next flow data into existing dataframe
dat<-left_join(dat,q2,by = c("Site" = "Site", "Date" = "Date"))
# >names(dat)
# [1] "Site" "Date" "dailyQ.x" "dailyQ.y"
我想要的是在每次迭代中将这些新条目附加到同一列中。我看了文件
*_join
对于stackoverflow的问题,却找不到解决方案。我知道我可以用嵌套
for
循环,但我正在寻找一个更优雅的解决方案。也许解决方案在于一种不同的方法,任何帮助都将不胜感激。非常感谢。