首页 > 解决方案 > 将第一行替换为 NA 并在 R 中下推一行

问题描述

如何将我的数据下移一步或下移一行并将第三列的第一行替换为 NA 并使用 r 删除第三列的最后一行?

我想要以下数据:

x   y   z
1   2    3
4   5    6
7   8    9 

to

x   y    z
1   2   NA
4   5    3
7   8    6

编码:

ave(data, data$z, FUN = function(x) c(diff(x), NA)

,给了我不同,而不是我想要的方式。

标签: r

解决方案


在基础 R 中,您可以执行以下操作:

 transform(df, z = c(NA, head(z, -1)))
  x y  z
1 1 2 NA
2 4 5  3
3 7 8  6

你也可以这样做:

library(tidyverse)
mutate(df, z = lag(z))

推荐阅读