我有1000个随机数的模拟:
a <-sample(0:1, 1000, rep = TRUE)
我想要的是一个十列的数据框,其中每列的值生成如。
例如:
id Column 1 Column2 .........Column 10
1 1 1
2 0 1
3 1
0
0
.
.
1000 1 1
答案 0 :(得分:33)
您正在寻找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()
中,您将拥有一个矩阵。矩阵的使用速度更快,因此您可能需要调查它们是否适合您的问题。
答案 1 :(得分:7)
为什么不一次生成所有数字并使用矩阵来制作列。此外,您可以使用rbinom
快速生成以下类型的数字:
matrix(rbinom(10*1000, 1, .5), ncol=10)
PS我不完全按照你要求的b / c做的,你说你是R的新手。我假设你可能不知道这种产生数字的方式。