"做"马赛克包中的命令默认返回一个数据框。
require(mosaic)
require(Sleuth3)
nulldist1 <- do(10)*t.test(Incidents~shuffle(Launch),
data=case0401,var.equal=TRUE)$statistic
class(nulldist1)
现在,我想使用replicate命令执行相同的操作。是否存在可以在复制命令中设置强制它返回数据帧的参数?我尝试过简化=&#34; data.frame&#34;但那没有用。
nulldist2 <- replicate(10,{
t.test(Incidents~shuffle(Launch),
data=case0401,var.equal=TRUE)$statistic
})
class(nulldist2)
有什么想法吗?
答案 0 :(得分:1)
data.frame(result = replicate(10,t.test(rnorm(100),rnorm(100))$statistic))
答案 1 :(得分:0)
如果您阅读?replicate
,您会注意到没有simplify = "data.frame"
选项,因此毫无疑问这不起作用。
当replicate()
返回一个数组,并假设结果是一个二维数组时,只需在对象as.data.frame()
上使用nulldist2
nulldist2 <- as.data.frame(nulldist2)
以下是一个例子:
> arr <- replicate(10, quantile(rnorm(1000)))
> arr
[,1] [,2] [,3] [,4] [,5] [,6]
0% -3.3574313 -3.09705035 -2.85009578 -3.140181733 -2.94235439 -3.24334919
25% -0.6610031 -0.68506227 -0.66891111 -0.681785814 -0.66985211 -0.60439317
50% 0.0576617 0.05899849 -0.01235571 0.007168725 0.07139977 0.07511633
75% 0.7584004 0.67879534 0.69335820 0.659121437 0.72854080 0.76506110
100% 3.0837762 2.89445426 3.23701556 3.084539130 3.06543839 3.07470137
[,7] [,8] [,9] [,10]
0% -2.78486552 -3.44680297 -3.27408224 -2.87007187
25% -0.69813726 -0.62989631 -0.68281294 -0.61806994
50% -0.02589364 0.03913355 -0.04370316 0.05563488
75% 0.66519651 0.74677634 0.64744094 0.74664823
100% 3.13266873 4.64939039 2.68895458 3.16797447
> df <- as.data.frame(t(arr))
> df
0% 25% 50% 75% 100%
1 -3.357431 -0.6610031 0.057661700 0.7584004 3.083776
2 -3.097050 -0.6850623 0.058998490 0.6787953 2.894454
3 -2.850096 -0.6689111 -0.012355714 0.6933582 3.237016
4 -3.140182 -0.6817858 0.007168725 0.6591214 3.084539
5 -2.942354 -0.6698521 0.071399769 0.7285408 3.065438
6 -3.243349 -0.6043932 0.075116334 0.7650611 3.074701
7 -2.784866 -0.6981373 -0.025893640 0.6651965 3.132669
8 -3.446803 -0.6298963 0.039133547 0.7467763 4.649390
9 -3.274082 -0.6828129 -0.043703156 0.6474409 2.688955
10 -2.870072 -0.6180699 0.055634885 0.7466482 3.167974
> class(df)
[1] "data.frame"