Sparklyr使用case_when和变量

问题描述 投票:4回答:1

当使用带有外部变量的case_when时,Sparklyr失败了。

工作实例:

test <- copy_to(sc, tibble(column = c(1,2,3,4)))
test %>%
  mutate(group = case_when(
                   column %in% c(1,2) ~ 'group 1',
                   column %in% c(3,4) ~ 'group 2'))

Error: Can't extract an environment from NULL失败

test <- copy_to(sc, tibble(column = c(1,2,3,4)))
group1_cols <- c(1,2)
group2_cols <- c(3,4)
test %>%
  mutate(group = case_when(
                   column %in% group1_cols ~ 'group 1',
                   column %in% group2_cols ~ 'group 2'))
r dplyr sparklyr dbplyr
1个回答
4
投票

尝试取消引用变量:

test %>%
  mutate(group = case_when(
    column %in% !!group1_cols ~ 'group 1',
    column %in% !!group2_cols ~ 'group 2'))

有关更多信息,请查看dplyr编程插图http://dplyr.tidyverse.org/articles/programming.html

© www.soinside.com 2019 - 2024. All rights reserved.