r - 当多个逻辑向量为真时,是否有 R 函数来创建变量?
问题描述
对于我的数据集,每个人都由一个唯一编号标识。我有四个逻辑向量表示一个人何时患有特定疾病。这些并不是相互排斥的,即人们可以同时患有多种疾病。我想创建一个额外的逻辑向量来指示某人何时患有多种疾病,以便下面的输出将是 FALSE、FALSE、FALSE、TRUE 的第五个变量
x <- c(1, 2, 3, 4)
logical_1 <- c(FALSE, TRUE, FALSE, TRUE)
logical_2 <- c(FALSE, FALSE, FALSE, TRUE)
logical_3 <- c(FALSE, FALSE, FALSE, FALSE)
logical_4 <- c(TRUE, FALSE, FALSE, FALSE)
dataframe <- data.frame(x, logical_1, logical_2, logical_3, logical_4)
我不确定什么功能最适合执行此操作,因此任何基本指针都会有所帮助。
提前致谢。
解决方案
在逻辑列上使用rowSums
来计算每行中 TRUE 的数量,然后查看哪些行的 TRUE 值超过 1 个:
dataframe$result = rowSums(dataframe[2:5]) > 1
dataframe
# x logical_1 logical_2 logical_3 logical_4 result
# 1 1 FALSE FALSE FALSE TRUE FALSE
# 2 2 TRUE FALSE FALSE FALSE FALSE
# 3 3 FALSE FALSE FALSE FALSE FALSE
# 4 4 TRUE TRUE FALSE FALSE TRUE
推荐阅读
- node.js - 如何从 .then 块返回响应?
- regex - 至少一个大写、一个小写、一个数字和一个特殊字符的正则表达式
- android - 如何允许 android 28 api 上的 http 流量和反应原生
- python - python - 如何使用python中的空格运行批处理命令?
- celery - 使用 ExternalTaskSensor 进行 DAG 任务依赖时,Airflow 1.10.2 ETL 运行缓慢?
- r - 如何在 R 中解析带有 +13:00 偏移量的时间戳?
- css - 如何在 Material-UI 中设置 Select 组件以在选择其中一项后松开其焦点状态
- angular - 适用于许多使用情况的通用 Angular 组件
- mysql - 为一组行设置相同的随机值
- hive - 如何使用 ^a-zA-Z0-9\ 保留单引号?