我想使用QuickCheck R library生成一个data.frame。 data.frame必须包含一些必须具有特定类型的非随机命名列。当您运行rdata.frame
时,您会获得一个完全随机的data.frame,其列名如col.1, col.2, ...
,而不是目标。
例如,下面的数据框有两列(x和y),其类型为整数和因子。
> data.frame(x=1:10, y=rep(F, 10))
x y
1 1 FALSE
2 2 FALSE
3 3 FALSE
4 4 FALSE
5 5 FALSE
6 6 FALSE
7 7 FALSE
8 8 FALSE
9 9 FALSE
10 10 FALSE
我可以做类似
的事情> data.frame(x=rinteger(size=~10), y=rlogical(size=~10), z=rdouble(size=~10))
x y z
1 -94 FALSE 7.124120
2 -64 FALSE -47.855625
3 -87 FALSE -9.622184
4 -9 FALSE -28.678583
5 -78 TRUE 35.932244
6 -96 TRUE 116.449312
7 -63 TRUE 51.389978
8 65 TRUE -65.566058
9 71 FALSE 248.323594
10 -76 TRUE 138.238654
生成预期的格式(具有正确列名的data.frame,具有特定类型的随机数据)。 但在我看来,必须有一个更好的方法,因为这里的行数并不重要。
将data.frame作为函数的输入附加到某些属性是相当常见的,遗憾的是文档在这一部分真的很神秘。
Bonus:如何将这些data.frame与某些常量值合并? (例如,除了随机生成的数据之外,还有一个值为0的列u)。
答案 0 :(得分:1)
library(quickcheck)
library(functional)
nr = rsize() # random number of rows
generators.nr =
lapply(
list(ri = rinteger, rd = rdouble, rl = rlogical), #all the ones you need
Curry,
size = ~nr)
with(
generators.nr,
data.frame(x = ri(), y = rd(), z = rl(), w = 1))