r - mutate_at 使用函数滞后但保留第一行
问题描述
我在 R 中使用 dplyr(非常高兴),并希望获得 mpg 列的差速器以在 mtcars 中齿轮。然后第一行返回 NA(原因很明显)。而不是第一行是 NA 我希望它保持原始值。
我正在寻找一种干净有效的方法来实现这一点(不使用连接将第一行添加到区分值,因为我自己的数据集上的代码包含许多过滤器和分组变量)。
我的代码如下:
mtcars %>% mutate_at(vars(mpg:gear), funs(. - lag(., 1)))
我希望第一行是 mtcars[1] 其余的是差异
解决方案
我们可以default
用 0 指定参数,否则,它将是NA
library(dplyr)
mtcars %>%
mutate_at(vars(mpg:gear), list(~ . - lag(., default = 0)))
或者另一种选择是diff
连接第一个元素
mtcars %>%
mutate_at(vars(mpg:gear), list(~ c(first(.), diff(.))))
注意:funs
正在被弃用。而不是我们正在使用的list
推荐阅读
- android - 如何在 Android TV 上安装 Beta (Crashlytics) 分布式应用程序
- neo4j - Neo4j:Neo4j 中是否存在“不包含”?
- python-3.x - 如何让 python3.6 和 python3.7 windows 10 一起使用
- r - 使用 Reduce 调用函数列表
- c++ - 星号不是字符常量吗?
- sql - 将日期格式 dd/mm/yyyy 更改为 yyyy-mm-dd
- r - 为列表列表赋值时出错
- python - 如何在网格上进行细化?
- ms-access - 如何创建一个可以在所有表中保存相似数据的表单?
- reactjs - 在组件安装/卸载时滑入/滑出