关于R语言字符型数据清洗问题

最近做一个预测关于投资者是否再次投资的项目,需要针对客户导出的数据进行清洗后建模分析,我目前选择的模型是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了,下一篇文章我来告诉大家具体解决方法。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
R语言是一种广泛应用于数据分析和统计建模的编程语言。在R语言中,数据清洗是指对原始数据进行处理和转换,以便于后续的分析和建模工作。下面是R语言中进行数据清洗的一般步骤: 1. 导入数据:使用R语言中的函数(如read.csv()、read.table()等)将原始数据导入到R环境中。 2. 数据观察与理解:使用函数(如head()、summary()等)查看数据的前几行、统计摘要等信息,了解数据的结构和特征。 3. 缺失值处理:使用函数(如is.na()、complete.cases()等)检测和处理数据中的缺失值。可以选择删除包含缺失值的行或列,或者使用插补方法填充缺失值。 4. 异常值处理:使用函数(如boxplot()、outlier()等)检测和处理数据中的异常值。可以选择删除异常值或者使用合理的替代值进行修正。 5. 数据类转换:使用函数(如as.numeric()、as.factor()等)将数据转换为正确的数据类。例如,将字符变量转换为数值变量、将数值变量转换为因子等。 6. 数据重编码:使用函数(如ifelse()、recode()等)对数据进行重编码。例如,将某个变量的取值映射为其他取值,或者将连续变量离散化为分类变量。 7. 数据合并与拆分:使用函数(如merge()、split()等)将多个数据集进行合并或拆分,以满足分析需求。 8. 数据排序与筛选:使用函数(如order()、subset()等)对数据进行排序和筛选,以选择感兴趣的数据子集。 9. 数据重塑与透视:使用函数(如reshape()、pivot_longer()等)对数据进行重塑和透视,以满足不同的分析需求。 10. 数据标准化与归一化:使用函数(如scale()、normalize()等)对数据进行标准化或归一化处理,以消除不同变量之间的量纲差异。 11. 数据转换与计算:使用函数(如mutate()、transform()等)对数据进行转换和计算,以生成新的变量或指标。 12. 数据存储与输出:使用函数(如write.csv()、write.table()等)将清洗后的数据保存到文件或输出到其他格式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值