2

我令人惊讶的新体验dplyr是,如果我对tibbles 进行涉及取消引号(!!xrlang::UQ(x))的各种操作,然后将它们分配给变量并最终将它们合并,bind_rows一切正常;而嵌入的相同操作bind_rows会因一些错误而失败。更令人困惑的是,错误并不总是相同的:我得到了quote(x) must resolve to integer column positions, not formula(this is with selectand mutate)和Column quote(x) is of unsupported type quoted call(this with group_by)。我想知道这种行为背后的原因是什么,我做错了什么还是这是一个错误?

require(dplyr)

f1 <- function(d, var){

    qvar <- enquo(var)

    d1 <- d %>% group_by(!!qvar) %>% summarize_all(first)
    d2 <- d %>% group_by(!!qvar) %>% summarize_all(first)

    bind_rows(d1, d2)

}

f2 <- function(d, var){

    qvar <- enquo(var)

    bind_rows(
        d %>%  group_by(!!qvar) %>% summarize_all(first),
        d %>%  group_by(!!qvar) %>% summarize_all(first)
    )
}

d <- data.frame(
    x = c(rep('a', 3), rep('b', 3)),
    y = seq(6)
)

f1(d, x) # works

f2(d, x) # fails
4

0 回答 0