首页 > 解决方案 > 是否有用于根据额外列更改部分变量的 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)

标签: rdataframedplyr

解决方案


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)

推荐阅读