我想通过函数SELECT DISTINCT ip
FROM visits
WHERE time <= NOW() - INTERVAL 1 WEEK AND
time >= NOW() - INTERVAL 2 WEEK;
来运行n个大小的随机选择的样本(从较大的数据集中)。
这是我到目前为止所拥有的...
B
estimates <- function(vctr){
e.mean <- mean(vctr); e.var <- var(vctr)
return(c(a = e.mean^2/e.var, s = e.var/e.mean))
}
est.loop <- function(df, n, B){
rand.sample <- sample(df, n)
return(rand.sample)
}
new.est <- est.loop(df, n=100)
estimates(new.est)
我知道这是不完整的,但是对于使 for(rand.sample in B){
estimates(rand.sample)
}
}
循环正确运行for
到rand.sample
,other.function
次的一些帮助将非常感激。
注意:当我在循环外运行B
时,它会按预期运行。我只需要让它现在调用other.function(rand.sample)
时使用B
的输入来重复一次即可。
谢谢!
编辑:函数my.function
返回所需的estimates
和a
值输出。 s
的工作方式与我想要的完全一样(为estimates(new.est)
大小的新数据集输出a
和s
值)。我想做的是在n
内重复B
次,以创建一个est.loop
和a
值的数组。
答案 0 :(得分:1)
也许以下内容可以解决问题。
经过内置数据集iris
的测试。
estimates <- function(df){
f <- function(vctr){
e.mean <- mean(vctr)
e.var <- var(vctr)
c(a = e.mean^2/e.var, s = e.var/e.mean)
}
sapply(df, f)
}
est.loop <- function(df, n, B){
i <- sample(nrow(df), n)
rand.sample <- df[i, ]
lapply(seq_len(B), function(i) estimates(rand.sample))
}
df <- iris[-5]
est.loop(df, n = 100, B = 3)