r - 基于其他列的值的条件更改
问题描述
当EVID列等于1时,我试图将CMT值从2更改为1,基本上我想做的就是这样
当 NEW$EVID==1 然后 NEW$CMT== NEW$CMT-1
但它不工作
解决方案
你可以使用ifelse
:
NEW$CMT <- ifelse( NEW$EVID==1, NEW$CMT-1, NEW$CMT)
或者你可以使用布尔算术:
NEW$CMT <- NEW$CMT -( NEW$EVID==1)*1
您还应该意识到在 R 中“==”运算符不进行赋值。all.equal
除非您确定您的值是整数,否则使用它通常更安全。考虑这个结果:
seq(0,1, by=0.1) == (0:10)/10
[1] TRUE TRUE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE
推荐阅读
- java - 如何使用 spring RestTemplate 生成带有二进制数据的 curl 请求?
- jira - 有没有办法将 Jira 与 XRAY 结合使用来触发外部构建?
- powerbi - 更改 SQL 视图时 PowerBI Desktop 不刷新数据
- pandas-groupby - 尝试使用 pandas 将共享一些相同信息但不是全部信息的不同行添加在一起
- azure-data-explorer - 是否可以更新 Azure 数据资源管理器 (Kusto) 中的行
- r - R以随机方式跳过for循环的值?
- security - [Splunk][Security] 假警报应用程序没用吗?
- c - 为什么我不能在 strcmp() 中使用搭配?
- r - R - 在某些单元格已经有值时填充列
- node.js - 如何在 ubuntu 上使用 express static 将 html 文件带入我的 nodejs 文件?