首页 > 解决方案 > 根据任意 2 个条件为真创建一个新变量

问题描述

我在 R 中有一个带有 4 个变量的数据框,并希望根据这些变量的任何 2 个条件为真创建一个新变量。我试图通过 if/else 语句创建它,但是需要对每个变量条件进行排列为真。我还需要扩展到可以根据任何 3 个条件为真创建新变量的位置。我不确定是否有比使用 if/else 语句更有效的方法?

我的例子:我有一个带有以下列变量的数据框 X

x1 = c(1,0,1,0)
X2 = c(0,0,0,0)
X3 = c(1,1,0,0)
X4 = c(0,0,1,0)

如果任何两个变量为真(例如 ==1),我想创建一个新变量 X5 基于上述数据框的新变量将产生 X5 (1,0,1,0)

标签: rvariablesbinary-data

解决方案


你可以试试这个:

#Data
df <- data.frame(x1,X2,X3,X4)
#Code
df$X5 <- ifelse(rowSums(df,na.rm=T)==2,1,0)

  x1 X2 X3 X4 X5
1  1  0  1  0  1
2  0  0  1  0  0
3  1  0  0  1  1
4  0  0  0  0  0

推荐阅读