【问题标题】:Create a new variable with condition OR for multiples variables为多个变量创建具有条件 OR 的新变量
【发布时间】:2022-01-08 13:27:07
【问题描述】:

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

我必须创建一个变量“生活中的某个时刻”,以指示女性是否在任何时间段内遭受过任何维度的暴力。因此,如果一名女性在 70 项指标中的任何一项中表示“是”,那么她在生命中的某个时刻遭受了暴力。

我的问题是如何更快地创建新变量,因为我唯一想到的就是它

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

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

【问题讨论】:

  • rowSums(base) &gt;=1

标签: r variables conditional-statements


【解决方案1】:

你可以这样做:

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   

【讨论】:

    猜你喜欢
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多