在 dplyr 工作流程中,当 newvar == 0 时,我尝试在数据框的每一列中粘贴 0 在 newvar 列之后,否则什么也不做。我修改了虹膜数据集:
library(dplyr)
n <- 150 # sample size
iris1 <- iris %>%
mutate(id = row_number(), .before = Sepal.Length) %>%
mutate(newvar = sample(c(0,1), replace=TRUE, size=n), .before = Sepal.Length ) %>%
mutate(across(.[,3:ncol(.)], ~ case_when(newvar==0 ~ 0)))
我尝试了像这里这样的解决方案如何将cross()函数与mutate()和case_when()结合起来,根据条件改变多列中的值?. 我的理解:
- 我浏览了
.[,3:ncol(.)]
newvar 列之后的列。 - 我尝试
case_when(newvar==0
设置条件。 - 如果条件满足,我尝试说粘贴 0
~ 0
之后。newvar==0
我知道我做错了什么,但我不知道是什么!谢谢您的帮助。