为多个变量创建一个条件为 OR 的新变量

Create a new variable with condition OR for multiples variables

目前我正在处理 Gender-Based 暴力的数据集。我有几个维度,例如身体暴力、性暴力或心理暴力,每个维度都有几个指标,每个维度都有一组 6 到 10 个指标。另外,我有两个时间尺度:过去 12 个月内和过去 12 个月之前。长话短说,至少我正在使用 70 个指标。

我必须创建一个变量“生命中的某个时刻”来指示女性是否在任何时间段的任何方面遭受过暴力。因此,如果一位女性在 70 个指标中的任何一个中回答“是”,那么她在她生命中的某个时刻遭受过暴力。

我的问题是如何更快地创建新变量,因为我唯一认为它类似于

base <- base %>% mutate(newvariable= case_when(v1 == 1 | v2 == 1 | v3 == 1 ~ ... 1))

但我有 70 个变量。那么,我可以用一个条件或在一个变量范围内创建这个新变量吗?

你可以这样做:

library(dplyr)

mydf <- data.frame(a = sample(c(0,1), 10, replace = TRUE),
                   b = sample(c(0,1), 10, replace = TRUE),
                   c = sample(c(0,1), 10, replace = TRUE))

mydf |> 
  rowwise() |> 
  mutate(outcome = if_else(sum(c_across(everything())) >= 1, TRUE, FALSE)) |> 
  ungroup()

# A tibble: 10 x 4
       a     b     c outcome
   <dbl> <dbl> <dbl> <lgl>  
 1     0     0     0 FALSE  
 2     1     0     1 TRUE   
 3     0     0     1 TRUE   
 4     1     0     0 TRUE   
 5     1     1     0 TRUE   
 6     1     0     1 TRUE   
 7     1     0     1 TRUE   
 8     0     1     1 TRUE   
 9     1     0     1 TRUE   
10     0     0     1 TRUE