我正在尝试根据年份向量引导数据集:
这是我的数据框df:
'data.frame': 103 obs. of 3 variables:
$ date : Date, format: "1962-08-01" "1982-08-01" "1983-08-01" ...
$ flow : num 0 0 0 0 0 0 0 0 0 0.404 ...
$ hydroYear: Factor w/ 45 levels "1950","1951",..: 11 27 28 29 33 35 36 37 40 41 ...
我正在使用类似这样的启动程序:
qmat <- boot(data=as.integer(as.vector(unique(df$hydroYear))),statstic=xboot,R=100)
现在,我想从df中创建一个新的数据帧,其中所有与启动年向量具有相同df$hydro
年的行都将存在,包括重复。
例如,如果我的数据框是:
flow hydroYear
1 1951
2 1951
3 1953
4 1954
5 1954
6 1956
,引导向量为:
1954 1953 1954 1951
我将得到一个看起来像这样的数据框:
flow hydroYear
4 1954
5 1954
3 1953
4 1954
5 1954
1 1951
2 1951
我已经尝试过了:
xboot <- function(yearboot,b,method){
tmpyr <- yearboot[b]
df1 <- df[df$hydroYear %in% tmpyr ,]}
但不会创建重复率
答案 0 :(得分:1)
不是唯一的方法,但
mydf <- data.frame(flow=c(1,2,3,4,5,6), hydroYear=c(1951,1951,1953,1954,1954,1956))
boot <- c(1954,1953,1954,1951)
do.call(rbind, lapply(boot, FUN=function(x){mydf[mydf$hydroYear == x, ]}))
给予
flow hydroYear
4 4 1954
5 5 1954
3 3 1953
41 4 1954
51 5 1954
1 1 1951
2 2 1951