【发布时间】:2019-10-28 18:04:21
【问题描述】:
我想通过函数B 运行 n 大小的随机选择的样本(来自更大的数据集)次数。
这就是我目前所拥有的......
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) 时,它会按预期工作。我现在只需要在调用my.function 时使用B 的输入重复它。
谢谢!!
编辑:函数estimates 返回a 和s 值的所需输出。 estimates(new.est) 完全按照我的意愿工作(输出 a 和 s 值,用于 n 大小的新数据集)。我想做的是在est.loop 内重复此B 次以创建a 和s 值的数组。
【问题讨论】:
-
您是否要打印
other.function(rand.sample)的输出?还是保存在某个地方?如果是前者,请尝试更改为print(other.function(rand.sample))。除此之外,如果您添加一些元素以使其可重现(示例数据集、示例函数等),它可能会帮助我们回答您。 -
在这里很难说你的目标是什么。您是否尝试在 for 循环的每次迭代中重新采样数据集?或者你只是得到一次重新采样的数据集?无论哪种方式,for 循环都不太可能设置正确,而且我认为您的重新采样不正确。
-
最后,我想将
other.function(rand.sample)的输出打印为一个数组。在没有任何重复的情况下,other.function会产生两个值(我想要的),但我现在想重复此操作以获取二值向量的B编号。我将添加元素/特异性来澄清。感谢您的及时回复。 -
也许是
res <- lapply(seq_len(B), function(i) other.function(rand.sample))。然后函数返回res。