10^6在R代码中使用科学记数法(正如我通常所做的那样)导致计算时间明显长于使用计算器表示1e6:
> system.time(for (t in 1:1e7) x=10^6)
utilisateur système écoulé
4.792 0.000 4.281
> system.time(for (t in 1:1e7) x=1e6)
utilisateur système écoulé
0.804 0.000 1.051
> system.time(for (t in 1:1e7) x=exp(6*log(10)))
utilisateur système écoulé
6.301 0.000 5.702
Run Code Online (Sandbox Code Playgroud)
为什么R会10^6在计算的大致相同的时间内重新计算exp{6*log(10)}?我理解R在计算时执行一个函数的事实10^6,但为什么它以这种方式编码?
有没有办法在不使用循环的情况下在R中生成具有正态分布随机值的数据集?每个条目将代表具有正态分布的独立随机变量.
在进行重要性采样的实验时,我模拟了Kolmogorov-Smirnov距离的值
$$ D_n =\max_x |\hat {F} _n(x)-F(x)| $$
其中$ n $是原始重要性样本的大小,我想将这些值与Kolmogorov-Smirnov检验或Kolmogorov分布的渐近分布进行比较,即
$$\sqrt {N} D_n\longrightarrow\sup_ {t\in [0,1]} | B(t)| $$
其中$ B $是布朗桥.
由于ks.test依赖于这种渐近分布,它的cdf已经出现在R的某个地方,我想知道如何访问它.R函数ks.test包含指令
PVAL <- 1 - if (alternative == "two.sided")
.Call(C_pKolmogorov2x, STATISTIC, n)
Run Code Online (Sandbox Code Playgroud)
但我自己的呼吁C_pKolmogorov2x不起作用.
我做了下图 
用命令
boxplot(tstats,names=c(expression(bar(x)),"","med(x)","","mad(x)","",
var(x)","",expression(q[.75]-q[.25]),""),
col=rep(c("wheat","chocolate"),5))
abline(h=2,col="steelblue",lty=2)
abline(h=-2,col="steelblue",lty=2)
title(main="normal data")
Run Code Online (Sandbox Code Playgroud)
但我想将两个(小麦和巧克力)盒子之间的共享名称居中。如何修改第一个轴标签?
我已经看过过去的解决方案,但忘了哪里:是否有一个R函数将x = 1234变成其数字(1,2,3,4),反之亦然?