R语言关于时间格式转化为数值的解决方案
来源:互联网 发布:java比较日期相差一年 编辑:程序博客网 时间:2024/06/02 04:10
好了,在前一篇文章中,我们将数据集转化为numeric格式,以便于在实际工作中预测投资者是否再次投资。
不过上次的数据集转化,将时间格式全部转化为了NA,导致预测准确率下降了约5%(因为失去了时间早晚这个维度),我们今天就来讲一下如何将数据集中的时间变量转化为numeric格式。
首先我们先回忆一下将时间变量转化为numeric格式的难点:
因为读入数据集的时候,所有数据都是以factor格式存储,如果直接用as.numeric函数转化时间,会发生一个奇特的现象——时间顺序被打乱,我这边数据集的情况如下:
直接使用as.numeric函数转化时间,出现下图:
请问它的规律在哪里?!恕我眼拙,看了半天没明白它转化为数值的主要逻辑,不得已,我只有回去继续找可能实现的路径。
后来知道factor型变量直接转化为数值会出现这样的问题,那么我不用factor变量转化,先用character变量转化再转化为numeric行么?尝试如下:
、
使用as.character函数转化没有问题,但是再进行as.numeric函数转化就出现问题了!具体如下:
所有时间变量全变成了NA!你大爷的!那我辛辛苦苦转化时间变量为了啥?!
好,从头再来!这次我总结了教训,决定先把时间变量以时间的形式存储起来,然后再来进行as.numeric函数转化,看看会不会出现问题?尝试如下:
上面的函数直接使用as.date就行,接下来我们看看是否能使用as.numeric函数转化(因为我们的主要目的是保存时间变量的先后顺序,而不是绝对值,所以这里我们没有考虑绝对时间的对错问题),如下图:
大家可以看到,时序是正确的,如果不清楚,我在数值上加上720000就看的很清楚了!如下图:
好了,这样就可以知道,距离我们越近的时间,数值越大,这个变量就能精准的表达时间远近了!到此为止,这个数据集的基础清洗就完毕了!附上我的部分代码:
library(rJava)
library(xlsxjars)
library(xlsx)
library(Matrix)
data<-read.xlsx('G:/数据文件//建模分析/0718/33.xlsX',1,encoding = 'UTF-8',header=T)
#对数据集进行字符化处理以便进行替换,原数据集数据类型为factor
data[] <- lapply(data, as.character)
#将数据集中‘NA’数据替换为0
data[is.na(data)]<-0
#将数据集中‘是’数据替换为1
data[data=='是']<-1
#将数据集中‘pc’数据替换为1
data[data=='pc']<-1
#将数据集中‘wap’数据替换为2,双引号和单引号意义相同
data[data=="wap"]<-2
#将数据集中‘ios’数据替换为3
data[data=='ios']<- 3
#将数据集中‘android’数据替换为4
data[data=='android']<- 4
#将数据集中‘新手专享’数据替换为1
data[data=='新手专享']<-1
#将数据集中‘直投散标’数据替换为2
data[data=='直投散标']<-2
#将数据集中‘定期宝’数据替换为3
data[data=='定期宝']<-3
#将数据集中‘双收计划’数据替换为4
data[data=='双收计划']<-4
#将数据集中‘新手标’数据替换为5
data[data=='新手标']<-5
#将数据集中‘register_time’列数据转换为时间格式
data$register_time<-as.Date(data$register_time)
#将数据集中‘first_invest_time’列数据转换为时间格式
data$first_invest_time<-as.Date(data$first_invest_time)
#将数据集整体转化为数据格式,方便后续做xgboost模型
data[] <- lapply(data, as.numeric)
#将数据集中的时间变量转化为正数
data$register_time<-data$register_time+720000
data$first_invest_time<-data$first_invest_time+720000
data[1:10,]
- R语言关于时间格式转化为数值的解决方案
- R语言Formula/公式转化为数值
- 数值转换为时间格式
- 点格式IP转化为数值
- logstash 中将时间转化为带T格式的时间
- mongoose时间自动转化为格林尼治标准时间的解决方案
- 解析抓取时间为汉字格式的(汉字的时间格式转化为数字格式)
- 时间的转化格式
- js时间转化为指定格式时间
- oracle时间格式字符串转化为时间
- Java 时间戳转化为时间格式
- 时间戳转化为时间格式
- 时间戳转化为时间格式
- java中获取不同时间格式的方法!及时间戳转化为时间格式
- json传出的时间戳转化为标准格式
- Python 如何优雅的将数字转化为时间格式
- R语言︱用excel VBA把xlsx批量转化为csv格式
- R语言与格式、日期格式、格式转化
- Android 设备上shell脚本执行
- 人月神话读书笔记(14)----祸起萧墙
- C语言中scanf函数的实现
- Linux操作系统
- android系统学习笔记——binder基础数据结构1
- R语言关于时间格式转化为数值的解决方案
- c# Wndproc的使用方法
- Android ListView左滑删除、左滑自定义功能
- java编程中如何使用户输入值
- 边框
- 串口通信每个参数代表什么
- 汉字数字与阿拉伯数字的转换
- 网络编程socket基本API详解
- ORA-00904:invalid identifier