r - 从后面 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
问候
解决方案
这里有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)]
推荐阅读
- python - 我需要比较和日期并返回还有多少天到期或多少天前到期
- python - KeyError - 不明白为什么
- node.js - 如果他们 ping 所有者,如何编写机器人以发送消息
- javascript - 在 Angular 中访问 Observable 对象
- java - 我如何将变量传递给方法 - java
- ansible - Ansible:ecs_task 检查状态
- python - 为什么我不能将 get 与 Tkinter askstring 一起使用?
- python - 如何运行一个好的easygui选择框功能
- unicode - 将字符与 unicode 组合是否有限制?
- r - 如何根据 R 中现有列的值和名称创建新列?