首页 > 解决方案 > 基于另一列创建虚拟列

问题描述

假设我有这个数据集

> example <- data.frame(a = 1:10, b = 10:1, c = 1:5 )

我想创建一个新变量dd当至少在变量a b c中存在值 1 2 或 3 时,我想要值 1。d应该是这样的:

d <- c(1, 1, 1, 0, 0, 1, 1, 1, 1, 1)

提前致谢。

标签: rmultiple-columnsdummy-variable

解决方案


您可以使用rowSums获取1, 2 or 3出现在每一行中的逻辑向量并将其包装as.integer以转换为 0 和 1,即

as.integer(rowSums(df == 1|df == 2| df == 3) > 0)
#[1] 1 1 1 0 0 1 1 1 1 1

推荐阅读