r - 基于另一列创建虚拟列
问题描述
假设我有这个数据集
> example <- data.frame(a = 1:10, b = 10:1, c = 1:5 )
我想创建一个新变量d
。d
当至少在变量a b c
中存在值 1 2 或 3
时,我想要值 1。d
应该是这样的:
d <- c(1, 1, 1, 0, 0, 1, 1, 1, 1, 1)
提前致谢。
解决方案
您可以使用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
推荐阅读
- javascript - 赛普拉斯中的未定义不可迭代(无法读取属性 Symbol(Symbol.iterator))
- python - Python 3 - 如何在枕头中打开已使用 open('image','r') 打开的图像
- vuejs3 - Vue路由器:根据当前url重定向
- javascript - 如何使用材质 UI 默认组件
- draftjs - 为什么 onTab 事件在 react-draft-wysiwyg 中无法正常工作?
- postgresql - 带有huge_pages的postgres数据库的SHMMAX / SHMALL内核参数
- amazon-web-services - 用于 S3 事件的圣杯部署引发错误
- histogram - octave:带有数据标签的直方图
- python - Kivy 将值传递给进度条
- postgresql - 在更新语句中排除空列 - JOOQ