最近做一个预测关于投资者是否再次投资的项目,需要针对客户导出的数据进行清洗后建模分析,我目前选择的模型是xgboost,貌似数据必须全是numeric。
数据结构如下:
在这个里面,我们需要做的是将第一列里面的‘是’替换为1,第四列、第七列、第八列的字符也替换为数字。
具体需求如下:
平台标签替换:0、NA;1、PC;2、WAP;3、IOS;4、andriod;
产品标签替换:0、NA;1、新手专享;2、直投散标;3、定期宝;4、双手计划;5、新手标。
首先我们读取数据,代码如下:
hnjb<-read.csv('F:/Rdata/hnjb/投资用户基础信息表3.csv',na.string='NA',header=T)
然后我们将数据转为字符型,方便替换
hnjb[] <- lapply(hnjb, as.character)
准备完毕,开始替换
hnjb[is.na(hnjb)]<-0
hnjb[hnjb=='是']<-1
hnjb[hnjb=='pc']<-1
hnjb[hnjb=="wap"]<-2
hnjb[hnjb=='ios']<- 3
hnjb[hnjb=='android']<- 4
hnjb[hnjb=='新手专享']<-1
hnjb[hnjb=='直投散标']<-2
hnjb[hnjb=='定期宝']<-3
hnjb[hnjb=='双收计划']<-4
hnjb[hnjb=='新手标']<-5
结果如下:
好了,字符替换大功告成!
后续我们将这些字符转码为numeric就可以导入xgboost进行建模分析了,不过时间变量转为字符串之后,再转为numeric就变成NA了
数据分析咨询请扫描二维码