繁体   English   中英

如何在按行庄园的 dplyr 变异管道中应用匿名 function ?

[英]How to apply an anonymous function inside dplyr mutate pipeline in a rowwise manor?

下面给出了一个简单的可重现示例,我想在变量vsvm处对mtcars dataframe 进行变异,如果值等于 1,则将其更改为 2。下面是我的原始方法,它会产生错误the condition has length > 1 . 所以很明显它不是遍历向量中的每个元素。

mtcars %>% mutate_at(vars(vs,am),function(x) {if(x == 1){x <- 2}})

我的第二种方法是尝试lapply迭代向量中的每个元素,这也给了我一个错误Error in match.fun(FUN): argument "FUN" is missing, with no default

mtcars %>% mutate_at(vars(vs,am),lapply(function(x) {if(x == 1){x <- 2}}))

我显然知道如何在 for 循环中完成此操作,只是想了解幕后的逻辑。

mtcars %>%
    mutate(across(c(vs, am), ~ case_when(.x == 1 ~ 2, TRUE ~ .x)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM