R 上的重复函数
Repeat function on R
所以我的问题如下:我正在尝试整理一个列表,其中每个条目都是在负二项分布下模拟的多个值的向量。我正在尝试使用此代码:
> test <- list()
> for(i in 1:100) {
+ test[[i]] <- rep(rnbinom(n=1000, size=36, prob=0.4), times = i, each =1)
+ }
但是,我得到了一个列表,其中条目的大小增加了。像这样:
int [1:1000] 33 82 44 33 58 45 63 ...
int [1:2000] 51 48 28 76 49 71 52 ...
int [1:3000] 59 53 65 72 38 41 48 ...
等等。在这种情况下,我希望每个条目都具有相同的大小 (n=1000),但有些地方不太对劲。
任何帮助将不胜感激,谢谢!
您实际上是在寻找 replicate
:
replicate(3,rnbinom(n=10, size=36, prob=0.4),F)
# [[1]]
# [1] 67 31 84 57 61 62 49 62 57 54
#
# [[2]]
# [1] 53 45 39 54 66 51 41 56 42 68
#
# [[3]]
# [1] 62 57 58 43 35 50 47 51 62 50
所以我的问题如下:我正在尝试整理一个列表,其中每个条目都是在负二项分布下模拟的多个值的向量。我正在尝试使用此代码:
> test <- list()
> for(i in 1:100) {
+ test[[i]] <- rep(rnbinom(n=1000, size=36, prob=0.4), times = i, each =1)
+ }
但是,我得到了一个列表,其中条目的大小增加了。像这样:
int [1:1000] 33 82 44 33 58 45 63 ...
int [1:2000] 51 48 28 76 49 71 52 ...
int [1:3000] 59 53 65 72 38 41 48 ...
等等。在这种情况下,我希望每个条目都具有相同的大小 (n=1000),但有些地方不太对劲。 任何帮助将不胜感激,谢谢!
您实际上是在寻找 replicate
:
replicate(3,rnbinom(n=10, size=36, prob=0.4),F)
# [[1]]
# [1] 67 31 84 57 61 62 49 62 57 54
#
# [[2]]
# [1] 53 45 39 54 66 51 41 56 42 68
#
# [[3]]
# [1] 62 57 58 43 35 50 47 51 62 50