是否有一个dplyr函数用于根据额外列更改部分变量?

是否有一个dplyr函数用于根据额外列更改部分变量?,r,dataframe,dplyr,R,Dataframe,Dplyr,尝试更改c列以考虑d列中发生的更改 “ID”的“结果”为“0”或“1”,一些ID的“结果”为“两者”,具体取决于一周,因此在当前的_df中,这被标记为“2” 我想根据“每周更改”列中的信息将其更改为“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,

尝试更改c列以考虑d列中发生的更改

“ID”的“结果”为“0”或“1”,一些ID的“结果”为“两者”,具体取决于一周,因此在当前的_df中,这被标记为“2”

我想根据“每周更改”列中的信息将其更改为“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)
#当前#
id=c(1,1,1,2,2,3,3,4,4)
周=c(5,6,7,11,12,13,19,20,21,5,8,10)
结果=c(0,0,0,2,2,2,2,2,1,1)
变化的第周=c(NA,NA,NA,13,13,13,20,20,NA,NA,NA)
df
库(dplyr)
#新德里
新的_df%
变异(结果2=如果其他(周>=变化周),
1,0)) %>%
突变(结果=ifelse)(结果=2,
结果2,结果%>%
选择(-outcome 2)

可能的复制您可以通过组合使用
mutate
dplyr
)和
ifelse
base
)、更严格的
if else
dplyr
)或者稍微难学但在
时使代码变得非常可读的
case>(同样
dplyr
)。虽然我不太理解你的逻辑,你能解释一下你的推理吗?@BenG如果我在运行一个混合线性效应模型,探索附加变量的变化,并想控制这个因素随时间的变化,我需要知道变化是什么时候发生的。技术上的“结果”这里是一个随时间变化的额外“自变量”,我想添加到我的模型中,希望这能回答逻辑问题。@BenG我不确定这是否适用于6000个ID?不清楚您是如何尝试解决这个问题的。到目前为止你试过什么?
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)