最简单但计算量最大的是泰勒公式:e=1+1/1!+1/2!+1/3!+1/4!+...
e_fun <- function(n) {etemp <- 1
ni <- 1L
for (i in 1:n) {
etemp <- etemp + 1 / ni
ni <- ni * (i + 1)
}
return(etemp)
}
不过你题目中要求的是求到精度为0.00001就停止,所以可以采用repeat循环:
i <- 1Lni <- 1L
etemp <- 1
repeat {
etemp1 <- etemp
etemp <- etemp + 1 / ni
ni <- ni * (i + 1)
i <- i + 1
if (etemp - etemp1 < 0.00001) break
}
i
etemp
在最后可以看到,求到i=10时,精度就已经达到要求了。
1)准备数据过程中,遇到了缺失值的问题。以往都是自己手动写代码,用缺失值样本所在类别的均值或者众数替换掉,结果今天发现,DMwR2包就有处理缺失值的函数,而且思想一致【大哭】
先奉上代码:
install.packages("DMwR2")
library(DMwR2)
knnImputation(YourDataFrame)
(2)准备用SMOTE函数时,发现DMwR包在老早之前,就从R语言 CRAN中移除了。多方搜索,找到了DMwR包的网页下载路劲:https://cran.r-project.org/src/contrib/Archive/DMwR/?C=DO=A。直接下载最新版,下载后将Zip文件存放至R语言目标文件夹的library中(主要是方便以后别人需要,我可以很快找到这个东西在哪里)。
比如,我的存放路径是:D:\Software\R-4.1.1\library
那么,现在回到R语言编程界面,输入代码:install.packages("D:/Software/R-4.1.1/library/DMwR_0.4.1.tar.gz", repos=NULL, type="source"),执行。【在这里我犯了一个小错,输入路径时候,把压缩包的后缀'.gz'落下了,由此走了好多弯路,解决不了,还下载R语言的2个老版本企图解决问题,不过还好问题没解决,我又发现了这个小错误。】
是的。
R语言中exp函数,用法和作用均与MATLAB中相同。MATLAB中也有exp函数。如果在命令窗口中输入:exp(0)则输出:1。其实MATLAB和C中的exp函数和数学中以e为底的指数函数都是一样的。
高等数学里的以e为底的指数函数。例:EXP{F(X)}是e的F(X)次方。C语言,函数名: exp,功 能: 指数函数,用 法: double exp(double x)所属库:math.h。
扩展资料:
R语言中的基本运算函数:
1、log(1:3):对于base未指定,默认为自然对数,取以自然对数为底,分别为1,2,3的对数
2、print(“Hello World!”):打印
3、abs(x<–8):取绝对值
4、log(x,base=2):取对数
5、log(1:3):对于base未指定,默认为自然对数,取以自然对数为底,分别为1,2,3的对数
6、exp(2):自然对数e的2次方
7、sqrt(4):开平方
8、round(2.5):返回2.5的近似 注意:返回值为2 当小数点后是5时,总是返回离他较近的整数
参考资料来源:百度百科-exp