当所有变量都缺失时,在 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)
创建一个包含所有感兴趣的变量名称的字符串。
为简单起见,我将它们全部都称为;使用正则表达式(例如 grep
)否则
cols_of_interest <- names(dt)
test_string <- glue("ifelse({glue('is.na({cols_of_interest})') %>%
glue_collapse(sep = '&')}, yes = 1, no = 0)")
用rlang
解析字符串
dt %>% mutate(flag = !!rlang::parse_expr(test_string))
我正在尝试在 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)
创建一个包含所有感兴趣的变量名称的字符串。 为简单起见,我将它们全部都称为;使用正则表达式(例如
grep
)否则cols_of_interest <- names(dt) test_string <- glue("ifelse({glue('is.na({cols_of_interest})') %>% glue_collapse(sep = '&')}, yes = 1, no = 0)")
用
解析字符串rlang
dt %>% mutate(flag = !!rlang::parse_expr(test_string))