当所有变量都缺失时,在 SparklyR 中创建一个指示变量

Create an indicator variable in SparklyR when all the variables are missing

我正在尝试在 sparklyr 中使用 rowSum 创建一个指标变量,其中缺少所有变量,但 rowSum 似乎在 sparklyr 中不起作用。

我必须像下面这样在 is.na() 函数中写下所有变量的名称,这是不可能的,因为我有 100 个变量。

y <- c(NA,1,2)
x <- c(NA,NA,3)
z <- c(NA,NA,NA)
dt = data.frame(x,y,z)

sdf_copy_to(sc, dt)

dt %>% 
 mutate(new = ifelse(is.na(x) & is.na(y) & is.na(z), 1,0))

is.na() 函数中是否可以写多个变量?

library(rlang)
library(glue)
  1. 创建一个包含所有感兴趣的变量名称的字符串。 为简单起见,我将它们全部都称为;使用正则表达式(例如 grep)否则

    cols_of_interest <- names(dt)
    
    
    test_string <-  glue("ifelse({glue('is.na({cols_of_interest})') %>% 
    glue_collapse(sep = '&')}, yes = 1, no = 0)")
    
  2. rlang

    解析字符串
    dt %>% mutate(flag = !!rlang::parse_expr(test_string))