【问题标题】:How to create a new variable based on conditions of previous variables in R?如何根据 R 中先前变量的条件创建新变量?
【发布时间】:2021-10-28 13:42:07
【问题描述】:

我有 2 个代表考试成绩的数字连续变量(var1var2)。

var1       var2
10.146     70.554
15.222     12.122
0          25.463
1.557      66.666
NA         8.545
26.447     NA

我想在 R 中创建第三个变量 (var3),使用基于 var1var2 的条件> 如:

if var1>0 and var2>0 and var2-var1>1 then var3=1 

(如果这不是提问的最佳方式,我深表歉意,但我才刚刚开始我的编程之旅)

【问题讨论】:

  • 你好@Maria。欢迎!请考虑向我们提供minimal reproducible example,以便其他 SO 用户能够以最佳方式帮助您。
  • var3 <- ifelse(var1 > 0 & var2 > 0 & (var2-var1) > 1, 1, 0) 将在满足条件时将1 分配给var3,否则分配0。在本例中,它可以缩短为+(var1 > 0 & var2 > 0 & (var2-var1) > 1),但如果您有01 以外的值,ifelse 方法更灵活。

标签: r


【解决方案1】:

您必须将变量附加到它们所属的数据上。例如:

data$var1

然后以下工作:

在 R 基础中

data$var3 <- ifelse(data$var1 > 0 & data$var2 > 0 & (data$var2-data$var1) > 1, 1, 0)

在 dplyr 中

library(dplyr)
data <- data %>% mutate(var3=if_else(var1 > 0 & 
                                     var2 > 0 & 
                                    (var2-var1) > 1, 1, 0))

【讨论】:

    【解决方案2】:

    使用包data.table的解决方案:

    library(data.table)
    data <- data[var1>0 & var2>0 & var2-var1>1, var3 := 1]
    

    【讨论】:

      猜你喜欢
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多