r - 根据任意 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)
解决方案
你可以试试这个:
#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
推荐阅读
- typescript - 通过静态字段初始化器避免类之间的依赖循环
- android - 自定义 EditText 到 Android
- ios - 如何使用 iPhone X 在我的应用程序中保存不同的 faceID 并稍后将它们与任何面部匹配 - iOS Swift
- php - 网站速度很慢,但如果我修改 URL,它会正常加载
- salesforce - 在字符串中使用自定义标签会引发“字段完整性异常”
- java-8 - 使用函数式编程对列表中的服务器对象进行流和过滤
- list - 当我尝试将字符列表转换为整数列表时,值会发生变化。我该如何解决?
- c# - ASP.NET 无法从 smtp 发送电子邮件
- node.js - 有没有办法隐藏 node.js 代码
- asynchronous - 是否可以实现异步 Outlook 插件 FormRegionShowing 事件处理程序?