基于R语言的数据处理及清洗简单汇总

查看目录及更改目录

getwd()   #查看工作目录
setwd("E:/工作文件/model")  #改变工作目录

安装及释放包

install.packages("packge-name")  #安装包
detach(package:packge-name)  #释放包

并行运算设置

library(doParallel)
cl <- makeCluster(15)
registerDoParallel(cl)

报错空间溢出:Java heap space,需要设置运行内存

library(rJava)
.jinit(parameters="-Xmx7888m")

删除R软件运行时保存在内存中的所有对象

rm(list=ls(all=TRUE))  

常规数据查看

data(data)     #加载数据集data
head(data)     #显示数据集data的前若干条数据
tail(data)     #显示数据集data的后若干条数据
str(data)      #探寻数据集内部结构
summary(data)   #获取数据集data的概括信息
dim(data)      #查看数据集data的纪录数和维度数
table(data$is_do)    #查看数据集data中维度is_do的数值分布
data<- data[which(data[,11]==1),]    #选取data数据表里第11列维度为1的数据
data$field<-as.numeric(data$field)   #数值转换
data$field<-as.factor(data$field)    #因子转化

for (i in 1:25) {
  data[,i] <- as.numeric(as.vector(data[,i]))
}   #循环技术进行数据类型转化

条件选择并赋值

y[which(y<1.5)] <- 1
data$is_do <- ifelse(data$is_do > 0.7 ,2,ifelse(data$is_do > 0.3 ,1,0))

q1_AGE<-quantile(data$AGE, 0.03,na.rm=TRUE) #data数据表中维度AGE从小到大排序前3%处数值
q2_AGE<-quantile(data$AGE, 0.97,na.rm=TRUE)  #data数据表中维度AGE从小到大排序前97%处数值
data$AGE <- ifelse(data$AGE < q1_AGE,q1_AGE,data$AGE)
data$AGE <- ifelse(data$AGE > q2_AGE,q2_AGE,data$AGE)

选择字段及删除字段

data <- data[names(data) %in% c("CN_EFF_DATE", "CN_EXP_DATE")]   #选取data数据表中字段CN_EFF_DATE、CN_EXP_DATE
data <- data[!(names(data) %in% c("CN_EFF_DATE", "CN_EXP_DATE"))]   #删除data数据表中字段CN_EFF_DATE、CN_EXP_DATE

抽样

data<-data[sample(nrow(data),10000),]    #随机从数据集data中选取10000条纪录
number=sample(nrow(data),1/4*nrow(data))  #计算数据集data样本量1/4的数值
train_example=data[number,]               #对数据集data随机抽样number个数

按比例划分数据

train_sub=sample(nrow(train_example),3/4*nrow(train_example))     
train_data=train_example[train_sub,]
test_data=train_example[-train_sub,]
dim(train_data)
dim(test_data)

变量处理

age_new<-c()
for (i in 1:length(data$AGE)){
  if(data$AGE[i]>=0&data$AGE[i]<18) 
  {age_new[i]<-'少年'}
  if(data$AGE[i]>=18&data$AGE[i]<30)
  {age_new[i]<-'青年'}
  if(data$AGE[i]>=30&data$AGE[i]<60) 
  {age_new[i]<-'壮年'}
  if(data$AGE[i]>=60)
  {age_new[i]<-'老年'}
}

字段合并

data_new<-data.frame(data[,c(1:16)],age_new) 

矩阵归一化(0到1)

b1=(p[,1]-min(p[,1]))/(max(p[,1])-min(p[,1]))  
发布了27 篇原创文章 · 获赞 134 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/yawei_liu1688/article/details/79174505