![R语言:迈向大数据之路](https://wfqqreader-1252317822.image.myqcloud.com/cover/909/27110909/b_27110909.jpg)
3-2 基本数学运算
3-2-1 四则运算
R的四则运算是指加(+)、减(-)、乘(*)和除(/)。
实例ch3_1:加法与减法运算实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00064.jpg?sign=1739287984-DO3uNRPHcef10HincgF7MmbJtUpCi3hD-0-4b3df52c056b69562a21e00c331ee1a1)
在以上赋值(也可想成等号)中,笔者故意用“=”符号,本章赋值有时候也会用“<-”,主要是用实例让读者了解R是支持这两种赋值符号的。从第四章起笔者将统一使用“<-”当作赋值符号。
实例ch3_2:乘法与除法运算实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00065.jpg?sign=1739287984-r3yQJOMsbU3YVpmjBmgFKWhIlRtg1b0M-0-1f99a6f8f4c86ea4ea8a785d57a23c6f)
3-2-2 余数和整除
余数(mod)所使用的符号是“%%”,可计算出除法运算中的余数。整除所使用的符号是“%/%”,是指在除法运算中只保留整数部分。
实例ch3_3:余数和整除运算实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00066.jpg?sign=1739287984-KjJyHtNhDR8ffN4lWPdDO55ANSF9aeLM-0-ae088059226b224909917dfce9e903a0)
3-2-3 次方或平方根
次方的符号是“**”或“^”,平方根的计算是使用函数sqrt()。
实例ch3_4:平方、次方和平方根运算实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00067.jpg?sign=1739287984-JJCJ4f8X1NfISDcXyvyuG8UItAfmay1j-0-7a7e8d94bdf19cbdb4c2ee956c062a4d)
3-2-4 绝对值
绝对值的函数名称是abs(),不论函数内的值是正数或负数,结果均是正数。
实例ch3_5:绝对值运算实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00068.jpg?sign=1739287984-Sbb2TfQJZGpSxCKvHiRwfG16zzVRulGG-0-2b182490fa02aa2eda07b347b5dd6a90)
3-2-5 exp()与对数
exp()是指自然数e的x次方,其中e的近似值是2.718282。
实例ch3_6:exp()运算实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00069.jpg?sign=1739287984-yMHIz8DWBLmp0xotQuxVwgWboaGvGpeC-0-7a43e4a0ecb12a537b42a655e97c3041)
对数有以下两种类型。
1)以自然数e为底的对数,loge x = ln x,语法是log()。
2)一般基底的对数,logm x ,语法是log(x, m)。如果基底是10,也可使用另一个对数函数log10()取代。
实例ch3_7:不同基底的对数运算实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00070.jpg?sign=1739287984-nq8oHeOk8mZIghJM7NwDn85pPPlqx9Ci-0-bb1ef0c37e5f9746207def4656454b6e)
exp()和log()也可称互为反函数。
3-2-6 科学符号e
科学符号是用e表示,例如数字12800,实际等于“1.28 * 10^4”,也可以用“1.28e4”表示。
实例ch3_8:科学符号的运算实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00071.jpg?sign=1739287984-mUS6K0I9OnEyaEri2BjxEhh0I2wxOLal-0-e28cff5dfd1bac52e6955a5eae5bb5dd)
数字0.00365,实际等于“3.65 * 10^-3”,也可以用“3.65e-3”表示。
实例ch3_9:另一个科学符号的运算实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00072.jpg?sign=1739287984-7kxv8EYvxALrYvX6ddmaVFjPJy7yQ7YG-0-ce9f4ffc6db26e76fedee9cb882604d0)
当然也可以直接使用科学符号执行四则运算。
实例ch3_10:直接使用科学符号的运算实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00073.jpg?sign=1739287984-kvjoLpVXOO5lCqOKzUARx0q8s7Ipt8eD-0-618d10280d2dd811671a097a7a1f6286)
上述的代码表示600000除以300。
3-2-7 圆周率与三角函数
圆周率就是指pi。pi是系统默认的参数,其近似值是3.141593。
实例ch3_11:列出pi值的实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00074.jpg?sign=1739287984-eBgXFChePR1R2iBlrHBrQ0qsgvnSRrmw-0-dd7a9abbe302dfa693e37d1dd4ef796a)
R语言所提供的三角函数有许多,例如,sin()、cos()、tan()、asin()、acos()、atan()、sinh()、cosh()、tanh()、asinh()、acos()、atan()。
实例ch3_12:三角函数运算实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00075.jpg?sign=1739287984-EbOSyYx1SFIYwB7UVfEfFqdXNPBp8UNo-0-403dfa5c0762c9227c45c07a122702c1)
3-2-8 四舍五入函数
R语言的四舍五入函数是round()。
round(x, digits = k),表示将实数x,以四舍五入方式,计算至第k位小数。另外,round()函数中的第2个参数“digits =”也可以省略,直接在第2个参数位置输入数字。
实例ch3_13:round()函数的各种运用实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00076.jpg?sign=1739287984-pNTyRfVdrM2zx13Qi7RFyjNRS91cCelE-0-457a19531fbd01a8a092546f989c5045)
使用round()函数时,如果第2个参数是负值,表示计数是以四舍五入取整数。例如,若参数是“-2”,表示取整数至百位数。若参数是“-3”,表示取整数至千位数。
实例ch3_14:使用round()函数,但digits参数是负值的运用实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00077.jpg?sign=1739287984-VE8kJqa7dVL7i6QgS48oiinxtOV39y4X-0-f27f297ddb6f7b1f1e90f89024c5cebe)
signif(x, digits = k),也是一个四舍五入的函数,其中x是要做处理的实数,k是有效数字的个数。例如,signif(79843.597, digits = 6),代表取6个数字,从左边算第7个数字以四舍五入的方式处理。
实例ch3_15:signif()函数的应用实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00078.jpg?sign=1739287984-YkhgHEKl5bfEW19nlzTfmw2GrWsFqvJD-0-ffd8999ba27b33ca8dc1599864d51952)
3-2-9 近似函数
R语言有3个近似函数。
1)floor(x):可得到小于等于x的最近整数。所以,floor(234.56)等于234。floor(-234.45)等于-235。
2)ceiling(x):可得到大于等于x的最近整数。所以,ceiling(234.56)等于235。ceiling(-234.45)等于-234。
3)trunc(x):可直接取整数。所以,trunc(234.56)等于234。trunc(-234.45)等于-234。
实例ch3_16:floor()、ceiling()和trunc()函数的运用实例。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00079.jpg?sign=1739287984-TdqroFAKzaXyBbTbpLpOFdJUjm3xfn14-0-acc8a469771dcee1d490ffc9b2e66421)
3-2-10 阶乘
factorial(x)可以返回x的阶乘。
实例ch3_17:factorial()函数的运用。
![](https://epubservercos.yuewen.com/6CA2AF/15477644904546506/epubprivate/OEBPS/Images/Img00080.jpg?sign=1739287984-Lm2dlmYXKs1PeWakRGtj5YpWZJ4DcRHN-0-eee977dcab06793d566c1eae22add0cb)