代码之家  ›  专栏  ›  技术社区  ›  wibeasley

cut()缺少值的变量

na r
  •  0
  • wibeasley  · 技术社区  · 8 年前

    cut()

    .missing ( dplyr::recode() &安培; dplyr::if_else()

    w 这个假设函数被命名为 cut_with_nas

    w <- c(0L, NA_integer_, 22:25, NA_integer_, 40)
    cut_with_nas(w, breaks=2)
    

    [1] (-0.04,20] Unknown    (20,40]    (20,40]    (20,40]    (20,40]    Unknown    (20,40]   
    Levels: (-0.04,20] (20,40] Unknown
    

    我在下面发布了一个实现这一点的函数,但我希望有一个更简洁的解决方案,或者至少有一个已经存在于包中的测试函数。

    1 回复  |  直到 8 年前
        1
  •  0
  •   wibeasley    8 年前
    cut_with_nas   <- function( x, breaks, labels=NULL, .missing="Unknown" ) {
      y <- cut(x, breaks, labels) #, include.lowest = T, right=F)
      y <- addNA(y)
      levels(y)[is.na(levels(y))] <- .missing
      return( y )
    }
    

    response 三年前的@akrun。
    this unanswered question