我在R中使用dplyr(非常高兴),并希望获得mpg列的差异以适应mtcar。然后第一行返回NA(出于明显的原因)。我希望它保持原始值,而不是第一行是NA。
我正在寻找一种干净有效的方法来实现这一目标(因为我自己的数据集上的代码包含许多过滤器和分组变量,因此不使用join将第一行添加到差异值中)。
我的代码如下:
func(c echo.Context) (err error) {
data := []byte(//the CSV formated data??)
return c.Blob(http.StatusOK, "text/csv", data)
}
我希望第一行是mtcars [1],其余的是差异
答案 0 :(得分: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