r - 是否有用于根据额外列更改部分变量的 dplyr 函数?
问题描述
尝试更改 c 列以考虑 d 列中发生的更改。
“ids”的“结果”为“0”或“1”,有些结果为“两者”,具体取决于周数,因此在 current_df 中标记为“2”。
我想根据“week_of_change”列中的信息将这些更改为“0”和“1”。
# current_df
id=c(1,1,1,2,2,2,3,3,3,4,4,4)
week=c(5,6,7,11,12,13,19,20,21,5,8,10)
outcome=c(0,0,0,2,2,2,2,2,2,1,1,1)
week_of_change=c(NA,NA,NA,13,13,13,20,20,20,NA,NA,NA)
df<-data.frame(id,week,outcome,week_of_change)
# new_df
new_outcome=c(0,0,0,0,0,1,0,1,1,1,1,1)
new_df<-data.frame(id,week,new_outcome,week_of_change)
解决方案
library(dplyr)
# new_df
new_df<-df %>%
mutate(outcome2 = if_else(week>= week_of_change,
1,0)) %>%
mutate(outcome = ifelse(outcome == 2,
outcome2, outcome)) %>%
select(-outcome2)
推荐阅读
- xamarin - 如何跳过一些堆栈以使后退按钮转到主页?
- spring - 使用spring cloud数据流,尝试部署一个简单的工作,但是卡住了,部署没有完成
- delphi - 在 Delphi 中添加单元或新表单会导致访问冲突
- javascript - 我想知道谷歌的网站翻译器可以在我们的网站上免费使用吗?在我们的网站上使用它还有其他顾虑吗?
- apache - 服务器挂断magento2 apache 2.4
- ios - Spritekit:从 UIButtons 传递到按钮作为 SKSpriteNode
- reactjs - 从 React 中的表格行打开模式
- java - 尝试在 Windows 中卸载我的 java 应用程序时询问密码
- robotframework - 在机器人框架中读取 SOAP 文件时无法加载外部实体错误
- c# - EF 时间原语类型