本文内容摘自CDA数据科学家训练营数据挖掘R语言课程。
【基本操作】
清空工作台:rm(list=ls())
清除内存:gc()
看帮助:library(help="fpc")
做完函数直接输出:(centered<-scale(x,scale=FALSE)) 直接外加括号即可
CPU运行时间:systerm.time()
看数据第一行:head()
看最佳迭代次数:best.iter()
打印输出:print(paste("K=",i))
导出文件:sink(file="m.txt") 写入文件
sink() 关闭文件
【数据预处理】
随机取样:dat.test<-dat.scale[sample(nrow(dat.scale),1000),] 不放回随机取样
查看数据类型:str(dat)
统计缺失值:
View(data.frame(apply(dat,2,function(x) sum(is.na(x)))))
View(data.frame(sapply(data.function(x) sum(is.na(x)))))
改变变量名:top$Name="Top 5"
within函数
transform函数
mutate函数
(可以让每行代码简洁)
取子类:
trainx<-train[,!names(train)%in%c('rid','segment','var_bin','var_bin2')] 正确方法
trainx<-train[,!names(,c('rid','segment','var_bin','var_bin2')] 错误方法,不能直接删除变量名代表的列
dat.sub<-dat[,substr(names(dat),1,3)=="R1_"]
利用字符串截取函数,截取第1到3个字母,与R1比较(适用于变量名称较统一,数据库中有若干种不同类型的数据)
scale函数:与apply(x,2,sd)作用一致,按列求方差,最后只有一行,而SCALE则是对全体数据都标准化
加入一列:clus<-data.frame(cluster=cluster.km$cluster,dat.sub)
加入的列名为cluster,数据为聚类后的分类名
【字符串操作】
字符串截取:substr(name(dat),1,3)
字符串截取函数:
dat.sub<-dat[,substr(names(dat),1,3)=="R1_"]
【特定数据选择及处理】
筛选前5名:top5=head(chinapm[order(chinapm$PM,decreasing=T),],5)
分组求和/平均:
sqldf包 利用sql求和
aggregate函数 :
clus_profile<-aggregate(,-cluster,data=clus,FUN=mean) 子主题
aggregate(formula,data,FUN)
plyr包
dply包
利用factor
行列求和/平均:
colSums(dat.scale)
rowMeans
【绘图】
柱状图:hist(dat$R1_MV001 可用来数据的初步探索
折线图:plot(x,y,type) type:p-points,l-line,b-both
plot(1:10,wss,type="b",xlab="Number of Cluster",ylab="Within groups sum of squares"
【决策树】
决策树是一种预测模型,同时也能能处理缺失值
【随机森林】
不能处理缺失值,随机选择变量
【线性回归】
glm包:需要手动选择进入模型的变量
glmnet包:加强版,自动选择进入模型的变量
【关联分析】
arules包: Apriori算法,Mining Associations with Apriori
【多次跑】
set.seed(12345)
【哑变量】
即虚拟变量(Dummy Variable),又称虚设变量、名义变量,是量化了的质变量,通常取值为0或1