从 dplyr 1.0.0 开始,该across
函数已取代旧的mutate_if
和summarise_at
type 函数。
每当我使用across
tomutate
或summarise
跨满足某些谓词(例如is.numeric()
)的列时,我发现自己想知道为什么我要使用这种长宽的语法。
我有一个模糊的想法,即新语法对于某些用例来说更加通用,但是当我的需求是一个简单的谓词变异时,使用是否有任何优势(除了遵守推荐的最佳实践)
mutate(across(where(is.numeric), some_func))
更简洁(在我看来更容易理解)
mutate_if(is.numeric, some_func)