24

我有 1000 个随机数的模拟:

a <-sample(0:1, 1000, rep = TRUE)

我想要的是一个十列的数据框,其中每一列的值都像 a.

例如:

id  Column 1    Column2 .........Column 10
 1   1                              1
 2   0                              1
 3   1            
     0
     0
     .
     .  
1000 1                              1 
4

2 回答 2

47

您正在寻找replicate

data.frame(replicate(10,sample(0:1,1000,rep=TRUE)))

这些是前几行:

  X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1  1  1  0  1  0  0  1  1  1   0
2  0  0  0  1  0  1  0  0  1   0
3  0  1  1  1  1  0  1  1  1   1
4  0  0  0  1  1  1  1  1  1   0
5  1  0  1  0  1  1  0  1  1   0
6  0  1  1  1  1  1  0  1  1   1

如果您执行相同的命令而不将其包装在 中data.frame(),您将拥有一个矩阵。矩阵的使用速度更快,因此您可能需要调查它们是否适合您的问题。

于 2013-10-14T01:33:17.197 回答
12

为什么不一次生成所有数字并使用矩阵来制作列。此外,您可以使用rbinom快速生成这些类型的数字:

matrix(rbinom(10*1000, 1, .5), ncol=10)

PS 我不完全按照你要求的 b/c 你说你是 R 的新手。我想你可能不知道这种生成数字的方式。

于 2013-10-14T01:38:09.310 回答