全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1282 1
2015-03-31
> changes
function (x, y)
{
    x <- location(x)
    y <- location(y)
    if (x$df == y$df) {
        cat("<identical>\n")
        return(invisible())
    }
    vars <- match_up(x$vars, y$vars)
    attr <- match_up(x$attr, y$attr)
    width <- max(nchar(rownames(vars)), nchar(rownames(attr)))
    if (nrow(vars) > 0)
        rownames(vars) <- format(rownames(vars), width = width)
    if (nrow(attr) > 0)
        rownames(attr) <- format(rownames(attr), width = width)
    if (nrow(vars) > 0) {
        cat("Changed variables:\n")
        print(vars, quote = FALSE)
    }
    if (nrow(vars) > 0 && nrow(attr))
        cat("\n")
    if (nrow(attr) > 0) {
        cat("Changed attributes:\n")
        print(attr, quote = FALSE)
    }
}
<environment: namespace:dplyr>


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-4-1 06:51:34
https://github.com/hadley/dplyr/blob/master/R/location.R

match_up <- function(x, y) {
  both <-    intersect(names(x), names(y))
  added <-   setdiff(names(x), names(y))
  deleted <- setdiff(names(y), names(x))

  out <- cbind(
    old = c(x[both], x[added], rep("<added>", length(deleted))),
    new = c(y[both], rep("<deleted>", length(added)), y[deleted])
  )
  rownames(out) <- c(both, added, deleted)
  out[out[, "old"] != out[, "new"], , drop = FALSE]
}

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群