2022-07-15 R语言数据标准化笔记

需要对一个dataframe中的单独一列进行标准化,看看如何用R语言实现吧:

#!/usr/bin/env Rscript
min(x, na.rm = FALSE) #取得向量中的最小值
 
max(x, na.rm = FALSE) #取的向量中的最大值
1. 所以如果打算使用max-min法
dat <- c(34, 24, 78, 43, 98, 87)
dat <- (dat - min(dat))/(max(dat) - min(dat))  
#返回[1] 0.14 0.00 0.73 0.26 1.00 0.85
2. z-score数据标准化(所有项减去平均数,然后除以标准差)
(dat - mean(dat))/sd(dat) 
3. 对数转换
log2(dat)   
4. scale函数的用法
去中心化
#所有项减去平均值就是所谓的去中心化,
dat <- c(3, 6, 4, 8)
dat - mean(dat) #返回向量
scale(dat, center = T, scale = F) #返回dataframe 
#这两种方式返回的值是相同的,返回数据结构不同
标准化(所有项除以均方根:均方根指的是,求所有项的平方和的平均数, 然后开平方)
sqrt(sum(dat^2)/(length(dat) - 1)) #求均方根
dat / sqrt(sum(dat^2)/(length(dat) - 1)) #标准化
scale(dat, center = F, scale = T) #scale标准化
#这两种方式是相同的
标准化2(所有项减去平均数, 然后除以标准差,得到均值为0, 标准差为1的一组数据)
(dat - (mean(dat)))/sd(dat)
# 所有项减去平均数,然后除以标准差
scale(dat, center = T, scale = T)
# scale函数实现标准化

你可能感兴趣的:(2022-07-15 R语言数据标准化笔记)