R:如何简单地重复一个命令?
我试图重复这个简单的命令10000次(通过一个简单的解决方案):R:如何简单地重复一个命令?,r,R,我试图重复这个简单的命令10000次(通过一个简单的解决方案): Tandem您可以使用replicate或sapply: R> colMeans(replicate(10000, sample(100, size=815, replace=TRUE, prob=NULL))) R> sapply(seq_len(10000), function(...) mean(sample(100, size=815, replace=TRUE, prob=NULL))) replicate
Tandem您可以使用replicate
或sapply
:
R> colMeans(replicate(10000, sample(100, size=815, replace=TRUE, prob=NULL)))
R> sapply(seq_len(10000), function(...) mean(sample(100, size=815, replace=TRUE, prob=NULL)))
replicate
是一个包装器,用于重复计算表达式(通常涉及随机数生成)的sapply
您可以使用replicate
或sapply
:
R> colMeans(replicate(10000, sample(100, size=815, replace=TRUE, prob=NULL)))
R> sapply(seq_len(10000), function(...) mean(sample(100, size=815, replace=TRUE, prob=NULL)))
replicate
是一个包装器,用于重复计算表达式(通常涉及随机数生成)的sapply
现在还不清楚你问这个问题是否是因为你是编程新手,但如果是这样的话,那么你可能应该阅读一些关于编程的基本资料
如果您已经了解了控制结构,并且希望了解特定于R的实现细节,那么有很多教程,例如。另一个答案是使用replicate
和colMeans
,这是用R编写时的惯用用法,可能也非常快,如果您想要10000次迭代,这一点很重要
然而,处理这类问题的一种更为普遍且(对于初学者而言)简单的方法是使用for
循环
> for (ii in 1:5) {
+ print(ii)
+ }
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
>
因此,在您的情况下,如果您只想将Tandem
对象的平均值打印5次:
for (ii in 1:5) {
Tandem <- sample(OUT, size = 815, replace = TRUE, prob = NULL)
TandemMean <- mean(Tandem)
print(TandemMean)
}
…创建此输出:
> set.seed(1234)
> OUT <- runif(100000, 1, 2)
> tandem <- list()
> for (ii in 1:10000) {
+ tandem[[ii]] <- mean(sample(OUT, size = 815, replace = TRUE, prob = NULL))
+ }
>
> tandem[1]
[[1]]
[1] 1.511923
> tandem[100]
[[1]]
[1] 1.496777
> tandem[20:25]
[[1]]
[1] 1.500669
[[2]]
[1] 1.487552
[[3]]
[1] 1.503409
[[4]]
[1] 1.501362
[[5]]
[1] 1.499728
[[6]]
[1] 1.492798
>
>设置种子(1234)
>输出串联(ii输入1:10000){
+串联[[ii]]
>串联[1]
[[1]]
[1] 1.511923
>串联[100]
[[1]]
[1] 1.496777
>串联[20:25]
[[1]]
[1] 1.500669
[[2]]
[1] 1.487552
[[3]]
[1] 1.503409
[[4]]
[1] 1.501362
[[5]]
[1] 1.499728
[[6]]
[1] 1.492798
>
不清楚你问这个问题是否是因为你是编程新手,但如果是这样的话,你可能应该阅读一些编程方面的基本资料
如果您已经了解了控制结构,并且希望了解特定于R的实现细节,那么有几十个教程,例如。另一个答案使用了replicate
和colMeans
,这在用R编写时是惯用的,可能也很快,如果您想要10000次迭代,这一点很重要。
然而,处理这类问题的一种更为普遍且(对于初学者而言)简单的方法是使用for
循环
> for (ii in 1:5) {
+ print(ii)
+ }
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
>
因此,在您的情况下,如果您只想将Tandem
对象的平均值打印5次:
for (ii in 1:5) {
Tandem <- sample(OUT, size = 815, replace = TRUE, prob = NULL)
TandemMean <- mean(Tandem)
print(TandemMean)
}
…创建此输出:
> set.seed(1234)
> OUT <- runif(100000, 1, 2)
> tandem <- list()
> for (ii in 1:10000) {
+ tandem[[ii]] <- mean(sample(OUT, size = 815, replace = TRUE, prob = NULL))
+ }
>
> tandem[1]
[[1]]
[1] 1.511923
> tandem[100]
[[1]]
[1] 1.496777
> tandem[20:25]
[[1]]
[1] 1.500669
[[2]]
[1] 1.487552
[[3]]
[1] 1.503409
[[4]]
[1] 1.501362
[[5]]
[1] 1.499728
[[6]]
[1] 1.492798
>
>设置种子(1234)
>输出串联(ii输入1:10000){
+串联[[ii]]
>串联[1]
[[1]]
[1] 1.511923
>串联[100]
[[1]]
[1] 1.496777
>串联[20:25]
[[1]]
[1] 1.500669
[[2]]
[1] 1.487552
[[3]]
[1] 1.503409
[[4]]
[1] 1.501362
[[5]]
[1] 1.499728
[[6]]
[1] 1.492798
>
这与什么编程或脚本语言有关?它对其他有类似问题的人很有用。对于那些只想知道你到底在说什么的人,你能展示一下你已经尝试并拒绝的复杂而艰难的解决方案吗?这与什么编程或脚本语言有关?这将是我们的问题对于其他有类似问题的人来说,这是一个很好的选择。对于那些只想知道你到底在说什么的人来说,你能展示你已经尝试并拒绝的复杂而艰难的解决方案吗?