查看目录及更改目录
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]))