首页 > 解决方案 > 从后面 n 行的其他列数据创建一个新列

问题描述

如何从 A 创建一列作为“B”,以便它从 A 的最后 n 行读取数据。例如,给定 n=3 B 将如下所示:

    A      B
1   100    NA
2   110    NA
3   88     NA
4   68     100
5   70     110 
6   118    88
7   200    68 
.    .     .
.    .     .
300 77     related value of A in row 300-3 

问候

标签: r

解决方案


这里有3种方法可以做到这一点n = 3

n <- 3

1) 基础 R

df$B <- c(rep(NA, n), head(df$A, -n))

2)dplyr

library(dplyr)
df %>% mutate(B = lag(A, n))

3)data.table

library(data.table)
setDT(df)[, B:= shift(A, n)]

推荐阅读