数据准备
df <- read.table(file = "D:/Documents/R wd/df.csv", header = T, sep = ",", colClasses = c(year = "character", nitrogen = "character", variety = "character", block = "character")) # 数据导入。
df # 查看数据。复制
## year nitrogen variety block v1 v2 v3 v4
## 1 2020 N1 a 1 1.26 2.14 3.4 4.66
## 2 2020 N1 a 2 1.20 2.90 4.1 5.30
## 3 2020 N1 a 3 1.30 3.00 4.3 5.60
## 4 2020 N1 b 1 1.08 1.72 2.8 3.88
## 5 2020 N1 b 2 1.05 1.65 2.7 3.75
## 6 2020 N1 b 3 1.15 1.35 2.5 3.65
## 7 2020 N2 a 1 1.32 3.78 5.1 6.42
## 8 2020 N2 a 2 1.28 4.32 5.6 6.88
## 9 2020 N2 a 3 1.35 3.95 5.3 6.65
## 10 2020 N2 b 1 1.33 3.47 4.8 6.13
## 11 2020 N2 b 2 1.28 2.72 4.0 5.28
## 12 2020 N2 b 3 1.30 3.90 5.2 6.50
## 13 2021 N1 a 1 1.19 3.61 4.8 5.99
## 14 2021 N1 a 2 1.21 3.29 4.5 5.71
## 15 2021 N1 a 3 1.24 3.26 4.5 5.74
## 16 2021 N1 b 1 1.09 2.71 3.8 4.89
## 17 2021 N1 b 2 1.28 2.32 3.6 4.88
## 18 2021 N1 b 3 1.35 1.95 3.3 4.65
## 19 2021 N2 a 1 1.45 4.35 5.8 7.25
## 20 2021 N2 a 2 1.40 3.80 5.2 6.60
## 21 2021 N2 a 3 1.37 4.23 5.6 6.97
## 22 2021 N2 b 1 1.28 2.72 4.0 5.28
## 23 2021 N2 b 2 1.15 3.35 4.5 5.65
## 24 2021 N2 b 3 1.24 3.46 4.7 5.94复制
第5章 高级数据管理
5.1 一个数据处理难题
5.2 数值和字符处理函数
5.2.1 数学函数
1、常见数学函数
常见数学函数运算。函数可以按照自己的需求进行套用。
abs(-5) # 返回绝对值。
复制
## [1] 5
复制
sqrt(5) # 返回平方根。
复制
## [1] 2.236068
复制
ceiling(c(0.78, 1.56, 3.58)) # 返回数据最小整数。
复制
## [1] 1 2 4
复制
floor(c(0.78, 1.56, 3.58)) # 返回数据最大整数。
复制
## [1] 0 1 3
复制
trunc(c(0.78, 1.56, 3.58)) # 向0的方向截取的整数部分。
复制
## [1] 0 1 3
复制
round(c(0.78, 1.56, 3.58), digits = 1) # 将数据舍入为1位小数。
复制
## [1] 0.8 1.6 3.6
复制
signif(c(0.78, 1.56, 3.58), digits = 1) # 将数据舍入为1的有效数字位数。
复制
## [1] 0.8 2.0 4.0
复制
log(5,2) # 对5取以2为底的对数。
复制
## [1] 2.321928
复制
log(10) # 自然对数。
复制
## [1] 2.302585
复制
log10(10) # 常用对数。
复制
## [1] 1
复制
exp(10) # 指数函数。
复制
## [1] 22026.47
复制
which.max(c(1, 5, 8, 2, 4, 3)) # 返回数据最大值元素的下标。
复制
## [1] 3
复制
which.min(c(1, 5, 8, 2, 4, 3)) # 返回数据最小值元素的下标。
复制
## [1] 1
复制
rev(c(1, 5, 8, 2, 4, 3)) # 将数据集数据逆序排列。
复制
## [1] 3 4 2 8 5 1
复制
sort(c(1, 5, 8, 2, 4, 3)) # 将数据集数据升序排列。
复制
## [1] 1 2 3 4 5 8
复制
cumsum(c(1, 5, 8, 2, 4, 3)) # 累积求和。返回一个向量,第i个元素是从1到i的和。
复制
## [1] 1 6 14 16 20 23
复制
cumprod(c(1, 5, 8, 2, 4, 3)) # 累积乘积。
复制
## [1] 1 5 40 80 320 960
复制
match(c(1, 5, 8, 2, 4, 3), c(1, 2, 3, 4)) # 返回一个和x的长度相同的向量,表示x中与y中元素相同的元素在y中的位置(没有则返回NA)。
复制
## [1] 1 NA NA 2 4 3
复制
which(df$v1 < 1.2) # which(x)返回一个包含x符合条件(当比较运算结果为真(TRUE)的下标的向量。
复制
## [1] 4 5 6 13 16 23
复制
table(c(1, 5, 8, 2, 4, 3, 2, 3, 2)) # 返回一个表格,给出y中重复元素的个数列表。
复制
##
## 1 2 3 4 5 8
## 1 3 2 1 1 1复制
union(c(1, 5, 8, 2, 4, 3),c(1, 2, 3, 4)) # 求两个向量的并集。
复制
## [1] 1 5 8 2 4 3
复制
intersect(c(1, 5, 8, 2, 4, 3),c(1, 2, 3, 4)) # 求两个向量的交集。
复制
## [1] 1 2 4 3
复制
setdiff(c(1, 5, 8, 2, 4, 3),c(1, 2, 3, 4)) # 返回两个向量中的不同元素。
复制
## [1] 5 8
复制
setequal(c(1, 5, 8, 2, 4, 3),c(1, 2, 3, 4)) # 判断两个数据集是否相等。
复制
## [1] FALSE
复制
format(200000,scientific = TRUE) # 把数据转换为科学计数。本例中将200000转换为科学计数。
复制
## [1] "2e+05"
复制
当这些函数被应用于数值向量、矩阵或数据框时,它们会作用于每一个独立的值。
round(df$v1, digits = 1) # 对数据集df中v1列数据保留1位小数。
复制
## [1] 1.3 1.2 1.3 1.1 1.0 1.1 1.3 1.3 1.4 1.3 1.3 1.3 1.2 1.2 1.2 1.1 1.3 1.4 1.4
## [20] 1.4 1.4 1.3 1.1 1.2复制
log(df$v1) # 对数据集df中v1列数值取自然对数。
复制
## [1] 0.23111172 0.18232156 0.26236426 0.07696104 0.04879016 0.13976194
## [7] 0.27763174 0.24686008 0.30010459 0.28517894 0.24686008 0.26236426
## [13] 0.17395331 0.19062036 0.21511138 0.08617770 0.24686008 0.30010459
## [19] 0.37156356 0.33647224 0.31481074 0.24686008 0.13976194 0.21511138复制
2、运算符
2.1 关系运算符
a <- 1:10 # 显示向量a
a < 5 # < 小于。复制
## [1] TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
复制
a > 5 # > 大于。
复制
## [1] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE
复制
a <= 5 # <=小于等于。
复制
## [1] TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE
复制
a >= 5 # >=大于等于。
复制
## [1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE
复制
3 == 5 # == 等于,也可判断是否相等。
复制
## [1] FALSE
复制
3 != 5 # ! 不等于。
复制
## [1] TRUE
复制
2.2 算术运算符
a + 2 # 加。
复制
## [1] 3 4 5 6 7 8 9 10 11 12
复制
a - 2 # 减。
复制
## [1] -1 0 1 2 3 4 5 6 7 8
复制
a * 2 # 乘。
复制
## [1] 2 4 6 8 10 12 14 16 18 20
复制
a 2 # 除。
复制
## [1] 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
复制
a^2 # ^或** 乘方,求幂值。2的2次方。
复制
## [1] 1 4 9 16 25 36 49 64 81 100
复制
10 %% 3 # A%%B 求余数。
复制
## [1] 1
复制
10 %/% 3 # A%/%B 整数除法。
复制
## [1] 3
复制
2.3 逻辑运算符
a[a<3 | a>6] # | 或,比较两个向量的所有元素。
复制
## [1] 1 2 7 8 9 10
复制
a[a<3 & a>6] # & 与。
复制
## integer(0)
复制
a && a+2 # 比较两个向量的第一个元素。a中的第一个元素是1,a+2中的第1个元素是3。
复制
## [1] TRUE
复制
sign(-1) # sign判断正负。
复制
## [1] -1
复制
2.4 其他运算符
2:8 # :冒号运算符。它为向量按顺序创建一系列数字。
复制
## [1] 2 3 4 5 6 7 8
复制
a <- c(1:10) # <- 赋值。
8 %in% a # 判断元素是否属于向量。复制
## [1] TRUE
复制
参考资料:
1. 《R语言实战》(中文版),人民邮电出版社,2013.
2. R语言常用数学函数,https://blog.csdn.net/qq_35242986/article/details/72956755 3. R语言中的数学运算-最全总结+解惑,https://blog.csdn.net/qq_38984677/article/details/81170499
文章转载自ZJH的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家观点】罗敏:从理论到真实SQL,感受DeepSeek如何做性能优化
墨天轮编辑部
1239次阅读
2025-03-06 16:45:38
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1219次阅读
2025-03-13 11:40:53
2025年2月国产数据库大事记
墨天轮编辑部
956次阅读
2025-03-05 12:27:34
2025年2月国产数据库中标情况一览:GoldenDB 3500+万!达梦近千万!
通讯员
849次阅读
2025-03-06 11:40:20
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
439次阅读
2025-03-13 14:38:19
AI的优化能力,取决于你问问题的能力!
潇湘秦
408次阅读
2025-03-11 11:18:22
优炫数据库成功应用于国家电投集团青海海南州新能源电厂!
优炫软件
335次阅读
2025-03-21 10:34:08
达梦数据与法本信息签署战略合作协议
达梦数据
280次阅读
2025-03-06 09:26:57
国产化+性能王炸!这套国产方案让 3.5T 数据 5 小时“无感搬家”
YMatrix
267次阅读
2025-03-13 09:51:26
IBM收购数据库厂商DataStax:瞄准向量和AI搜索
深度数据云
259次阅读
2025-02-28 12:04:04