R中作为数据处理基石的函数,可以分为数值(数学、统计、概率)函数与字符处理函数
数学函数
表5-2数学函数
函数 | 描述 | 示例 |
---|---|---|
abs(x) | 绝对值 | abs(-4)返回值为4 |
sqrt(x) | 平方根 | sqrt(25)返回值为5 |
ceilling(x) | 不小于x的最小整数 | ceiling(3.475)返回值为4 |
floor(x) | 不大于x最大整数 | floor(3.475)返回值为3 |
frunc(x) | 向0的方向截取x中的整数部分 | trunc(5.99)返回值为5 |
round(x, digits = n) | 将x舍入为指定位的小数 | round(3,475, digits =2)返回值为3.48 |
signif(x, digits = n) | 将x舍入为指定的有效数字位数 | signif(3.475, digits =2)返回值为3.5 |
cos(x), sin(x),tan(x) | 余弦、正弦、和正切 | cos(2)返回值为-0.416 |
acos(x), asin(x), atan(x) | 反余弦、反正弦、反正切 | acos(-0.416)返回值为2 |
cosh(x), sinh(x), tanh(x) | 双曲余弦、双曲正弦、双曲正切 | sinh(2)返回值为30627 |
acosh(x), asinh(x), atanh(x) | 反双曲余弦、反双曲正弦、反双曲正切 | asinh(3.627)返回值为2 |
log(x,base = n) | 对x取以n为底的对数 | |
log(x) | 自然对数 | log(2) = 1 |
log10(x) | 常用对数 | log10(10) = 1 |
exp(x) | 指数函数 | exp(2.3026) = 10 |
对数据变换是这些函数的一个主要用途。
当这些数学函数被应用于数值向量、矩阵或数据框时,他们会作用于每一个独立的值
观察下列应用返回的值
squrt(c(4, 16, 25))
#返回值为c(2, 4, 5)
统计函数
许多统计函数都拥有可以影响输出结果的可选参数,例如
z <- mean(x, trim = 0.05, na.rm = TRUE)
上述命令提供了截尾平均数,即丢弃了最大的5%和最小的5%的数据和所有缺失值后的算术平均数。
表5-3 统计函数
函数 | 描述 | 举例 |
---|---|---|
mean(x) | 平均数 | |
median(x) | 中位数 | |
sd(x) | 标准差 | |
var(x) | 方差 | |
mad(x) | 绝对中位数 | mad(c(1, 2,3, 4)) = 1.48 |
quantile(x, probs) | 求分位数,其中x为待求分位数的数值型向量,probs为一个由[0,1]之间的概率值组成的数值向量 | 求x的30%和84%分为点 y <- quantile(x, c(0.3, 0.84)) |
range(x) | 求值域 | x <- c(1, 2, 3, 4) rang(x)返回值为c(1, 4) |
sum(x) | 求和 | |
diff(x, lag = n) | 滞后差分,lag用以指定滞后几项,默认的lag为1 | x <- c(1, 5, 23, 29) diff(x)返回值为c(4, 18, 6) |
min(x) | 求最小值 | |
max(x) | 求最大值 | |
scale(x, center = TRUE, scale = TRUE) | 为数据对象x按列进行中心化(center = TRUE)或标准化(center = TRUE, scale = TRUE) | 代码清单5-6中给出一个示例 |
#代码清单5-1 均值和标准差的计算 ####
x <- c(1, 2, 3, 4, 5, 6, 7, 8)
mean(x)
sd(x)
n <- length(x)
meanx <- sum(x)/n
css <- sum((x - meanx)^2)
sdx <-squrt(css / (n-1))
meanx
sdx
数据的标准化
默认情况下,函数scale()对矩阵或数据框的指定列进行均值为0、标准化为1的标准化
newdata <- scale(mydata)
要对每一列进行任意均值和标准差的标准化,可以使用如下代码
newdata <- scale(mydata)*SD +M
要对指定列而不是整个矩阵或数据框进行标准化,可以使用这样的代码
没有评论:
发表评论