美文网首页
tidyverse包-reader

tidyverse包-reader

作者: 萍智医信 | 来源:发表于2021-08-20 17:12 被阅读0次

    加载包及读取数据

    library(tidyverse)
    v_information<-read_csv("vip_information.csv",col_names=T)
    
    v_information.png
    读取的向量数据类型.png
    v_information<-read_csv("vip_information.csv",col_names=T,
                            col_types = cols(
                              kh = col_character(),
                              csny = col_date(),
                              xb = col_integer(),
                              djsj = col_date(),
                              class = col_integer()
                              ))
    
    向量数据类型更改后.png

    发现什么问题了吗?解析后丢失了很多数据,出现很多NA,需要做下一步操作来处理。
    下面我们通过tidyverse包里的函数来获得我们想要的数据类型

    解析向量数据类型的函数:
    parse_logical 逻辑型、parse_integer 整型、parse_double 严格的数值型、parse_number 数值型、parse_character 字符型、parse_factor 因子型、日期型:parse_datetime、parse_date、parse_time

    将向量class字符型解析为整数型

    v_information<-read_csv("vip_information.csv",col_names=T)
    v_information$class<-parse_integer(v_information$class)
    
    v_information$class.png

    查看为什么出现NA

    problems(v_information$class)
    

    原来是特殊符号,字母转变成NA


    特殊符号,字母转变成NA.png

    将向量csny字符型转变为日期型

    d<-parse_date(v_information$csny,format ="%Y/%m/%d")  #format ="%Y/%m/%d"定义日期格式
    
    d.png
    problems(d)
    
    有的日期数据后面有时间,故按给定的格式无法解读.png

    自定义函数解决这一问题

    parse_self<-function(dat){
      d<-sapply(strsplit(dat,split=" "),function(x){x[[1]][1]})   #由于strsplit函数会将分裂后的数据转成列表,故用sapply函数将列表第一列提取出来
      return(parse_date(d,format ="%Y/%m/%d"))
    }
    
    v_information$csny<-parse_self(v_information$csny) 
    v_information$djsj<-parse_self(v_information$djsj)
    
    v_information.png

    除了上面的自定义函数方法,还可以直接用R里的基础函数as.Date直接将其转为日期型

    v_information$csny<-as.Date(v_information$csny) 
    v_information$djsj<-as.Date(v_information$djsj) 
    

    相关文章

      网友评论

          本文标题:tidyverse包-reader

          本文链接:https://www.haomeiwen.com/subject/kdptiltx.html