R语言的精度和时间效率比较(简单版)
R语言的最大数值 在R语言里面,所能计算的最大数值可以用下面的方法获得: ### R可计算最大数值 .Machine 在编程的时候注意不要超过这个数值。当然,普通情况下也不可能超过的。 R语言的最大精度 R语言的舍入误差要比python好不少,但是也还是有的。 ###最小非零整数 2^-1074 ###最大数 2^1023 ###机器误差 2^-52 + 1 - 1 2^-53 + 1 - 1 ###比较两个数字 all.equal(2^-12 + 1,2^-13 + 1,tolerance = 1e-7) 上面所谓的机器误差就是不可避免的最小误差,在做运算时会被舍弃。至于在什么情况下舍弃,取决于两个数之间的误差是均方根,系统默认的均方根是10^-8,小于这个值的时候R就会默认它们相等。使用all.equal函数可以自己设定均方根的阈值,即tolerance. R语言的时间消耗 ###创建向量会更浪费时间 n <- 1e6 x <- rep(0,n) system.time(for(i in 1:n) x[i] <- i^2) x <- c() system.time(for(i in 1:n) x[i] <- i^2) 可以看到时间差距还是很大的。 ###矩阵的列求和 ###全部使用循环,不使用sum函数 Bmatrix <- matrix(1