美文网首页
R基本数据管理--如何处理缺失值、数据类型转换

R基本数据管理--如何处理缺失值、数据类型转换

作者: 天秤座的机器狗 | 来源:发表于2018-08-09 20:01 被阅读28次
    #R基本数据管理--如何处理缺失值、数据类型转换
    
    x <- c(1,2,3,NA) #定义一个向量
    is.na(x) #判断向量中各个值是否为空值,如果是就返回TRUE,不是就返回FALSE.
    
    # [1] FALSE FALSE FALSE  TRUE
    #---------------------------------
      
    
    #构建一个数据集
    manager <- c(1,2,3,4,5)
    date <- c("8/1/18","8/2/18","8/3/18","8/4/18","8/5/18")
    country <-c("US","US","UK","UK","UK")
    gender <- c("M","F","F","M","F") 
    age <- c(32,45,25,39,99)
    q1 <- c(5,3,3,3,2)
    q2 <- c(4,5,5,3,2)
    q3 <- c(5,2,5,4,1)
    q4 <- c(5,5,5,NA,2)
    q5 <- c(5,5,2,NA,1)
    
    
    #变量导入数据框
    survey <- data.frame(manager,date,country,gender,age,q1,q2,q3,q4,q5,stringsAsFactors = FALSE)
    
    #判断6-10列是否有缺失值
    is.na(survey[,6:10])
    
    
    #-------------------------------------
    #   q1    q2    q3    q4    q5
    #[1,] FALSE FALSE FALSE FALSE FALSE
    #[2,] FALSE FALSE FALSE FALSE FALSE
    #[3,] FALSE FALSE FALSE FALSE FALSE
    #[4,] FALSE FALSE FALSE  TRUE  TRUE
    #[5,] FALSE FALSE FALSE FALSE FALSE
    --------------------------------------
     
    #  x==NA 是不行的
      
    #针对NA所做的所有逻辑判断和计算,结果都是空值
    #比如  
    x <- c(1,2,3,NA)
    y <- x[1]+x[2]+x[3]+x[4]
    y
    #[1] NA
    
    y <- sum(x,na.rm=T)  #去除空值
    y
    
    data <- na.omit(survey)
    data
    
    #-------------------
    #manager   date country gender age q1 q2 q3 q4 q5
    #1       1 8/1/18      US      M  32  5  4  5  5  5
    #2       2 8/2/18      US      F  45  3  5  2  5  5
    #3       3 8/3/18      UK      F  25  3  5  5  5  2
    #5       5 8/5/18      UK      F  99  2  2  1  2  1
    #------------------------------------------------
    #na.omit这种删除缺失值的方法是会整行删除的
    
    
    #数据类型转换
    a <- c(2,5,7)
    is.numeric(a)
    #[1] TRUE
    is.vector(a)
    #[1] TRUE
    
    b <- as.character(a)
    is.numeric(b)
    #[1] TRUE
    #[1] TRUEs.vector(b)
    
    data <- survey[order(survey$age),] #对age按行排序,中括号出现的时候通常是有条件的
    data
    
    #  manager   date country gender age q1 q2 q3 q4 q5
    #3       3 8/3/18      UK      F  25  3  5  5  5  2
    #1       1 8/1/18      US      M  32  5  4  5  5  5
    #4       4 8/4/18      UK      M  39  3  3  4 NA NA
    #2       2 8/2/18      US      F  45  3  5  2  5  5
    #5       5 8/5/18      UK      F  99  2  2  1  2  1
    
    data1 <- survey[order(survey$gender,survey$age),] #先按性别排序或者说分组,再按年龄排序
    data1
    
    #manager   date country gender age q1 q2 q3 q4 q5
    #3       3 8/3/18      UK      F  25  3  5  5  5  2
    #2       2 8/2/18      US      F  45  3  5  2  5  5
    #5       5 8/5/18      UK      F  99  2  2  1  2  1
    #1       1 8/1/18      US      M  32  5  4  5  5  5
    #4       4 8/4/18      UK      M  39  3  3  4 NA NA
    
    data2 <- survey[order(-survey$age),] #加一个-号变成降序排列
    data2
    
    #manager   date country gender age q1 q2 q3 q4 q5
    #5       5 8/5/18      UK      F  99  2  2  1  2  1
    #2       2 8/2/18      US      F  45  3  5  2  5  5
    #4       4 8/4/18      UK      M  39  3  3  4 NA NA
    #1       1 8/1/18      US      M  32  5  4  5  5  5
    #3       3 8/3/18      UK      F  25  3  5  5  5  2
    
    

    相关文章

      网友评论

          本文标题:R基本数据管理--如何处理缺失值、数据类型转换

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