赞
踩
一. 加载模块包
install.packages("tidyverse")
library(tidyverse)
其他方法
# initial settings
libary_path
dir.create(libary_path,showWarnings = FALSE)
.libPaths(libary_path)
if(!require(testthat)){
install.packages("testthat")
library(testthat)
}
if(!require(repr)){
install.packages("repr")
library(repr)
}
if(!require(MASS)){
install.packages("MASS")
library(MASS)
}
if(!require(gclus)){
install.packages("gclus")
library(gclus)
}
if(!require(GGally)){
install.packages("GGally")
library(GGally)
}
if(!require(ggcorrplot)){
install.packages("ggcorrplot")
library(ggcorrplot)
}
if(!require(tidyverse)){
install.packages("tidyverse")
library(tidyverse)
}
# Plot size deppening on your screen resolution to 4 x 3
options(repr.plot.width=4, repr.plot.height=3)
方法1:将数据和文件放置在同一文件夹下直接读取
rt
方法2:设置路径后读取
#读取txt数据
setwd("D:\\data")
rt
方法3:弹窗手动选择数据
data
data
方法4:直接路径读取数据
data
方法5:复制表格内容
#右键复制表格内容后输入如下代码 以便导入复制在内存中数据:
data=read.table("clipboard",sep="\t",header = T)
查看数据
View(data)
str(data)
summary(data)
查看行和列的个数是(多少行 多少列)
dim(data)
#结果是:1,2 这样1行2列
查看某列元素(不重复)
unique(data$列名)
unique(data[,1])
table(data[,2])
查看 列名 & 行名
names(data)
row.names(data)
设置 列名 & 行名
names(data) = c("A","B","C")
row.names(data)=c("A","B","C")
增加一列 总计
data$total=rowSums(data)
增加一行 总计
data[7,]=colSums(data)
#这里7表示行数+1,所以如下也可以
#data[nrow(data)+1,]=colSums(data)
#或者使用合并方法
#rbind(df1,colSums(data))
三. 数据处理
改变数值类型
for (i in 2:dim(df)[2]){
df[,i]=as.numeric(df[,i])}
取消科学计数,保留小数
options(scipen = 200)
去重查看
unique(data)
标准化("max-min"结果肯定大于0) 和 归一化(结果不一定大于0)
################# 自定义标准化 #####################################
normalize = function(x) {return ((x - min(x)) / (max(x) - min(x)))}
data[,-11]=normalize(data[,-11])
head(data)
##或者构造新的数据集
#data_Stand=as.data.frame(lapply(data[,-11],normalize))
#data_Stand$class=data$class
#head(data_Stand)
################# 归一化函数包scale() #####################################
#第11列是标签列(目标列)
data[,-11]=scale(data[,-11])
#scale(x, center = TRUE, scale = TRUE)
View(data)
处理查看空缺值
################## Processing "NAN" ##################
na_flag = apply(is.na(data), 2, sum)
View(na_flag)
#删掉所在行
dataset
na_flag = apply(is.na(dataset), 2, sum)
View(na_flag)
盖帽法替换异常值
############################### 数据处理 #####################
#绘制频率分布直方图
par(mfrow=c(2,5))
for(i in 1:10)
{
hist(data[,i],main=paste(names(data)[i],"的频率分布直方图"),xlab=NA)
}
#绘制箱线图检验离群值
par(mfrow=c(2,5))
for(i in 1:10)
{
boxplot(data[i],main=paste(names(data)[i],"的箱线图"))
}
#或者另一种方法绘制箱线图检验离群值
par(mfrow=c(1,1))
boxplot(data[,-11])
###### 绘制散点图 #######
##par(mfrow=c(4,4))
##for(i in 2:17)
##{
##plot(data[,i],main=paste(names(data)[i],"的散点图"),xlab=NA,ylab=NA)
##}
#######################
#采用盖帽法替换异常值,用10%处的数据覆盖分布在10%以下的数据,用90%处的数据覆盖分布在99%以上的数据。
#这里的10%和90%取值有些极端,及供参考。
block
if(lower){
q1
x[x<=q1]
}
if(upper){
q99
x[x>q99]
}
return(x)
}
data[,-11] = sapply(data[,-11],block)
par(mfrow=c(1,1))
boxplot(data[,-11],frame = T)
str(data)
head(data)
相关图
##### 绘制替换异常值后的相关图 ##########
#相关系数cor
b=cor(data[,-11])
b
#安装ggpubr包可视化
#install.packages("ggpubr")
#install.packages("corrplot")
library("corrplot")
par(mfrow=c(1,1))
corrplot(b)
#或通过饼图查看相关性
corrplot(b,method="pie")
#用颜色显示,同时显示相关系数。
corrplot(b,method="color",addCoef.col="grey")
#显示数字,增强图形可读性。
col=colorRampPalette(c("navy", "white", "firebrick3")) #设置颜色
corrplot(b,add=TRUE, type="lower", method="number",diag=FALSE,tl.pos="n", cl.pos="n",col=col(10))
#绘制变量间相关性多图混合
par(mfrow=c(1,1))
library(PerformanceAnalytics)
chart.Correlation(data[,-11])
关于日期
#选定日期
start=as.Date("2020-1-22",'%Y-%m-%d'
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。