首页 > 解决方案 > 如何在R中滞后数据框的特定列

问题描述

输入(说 d 是下面的数据框。)

a  b  c
1  5  7
2  6  8
3  7  9

我想将 b 列的内容向下移动一个位置,并将任意数字放在 b 的第一个位置。我该怎么做呢?我将不胜感激在这方面的任何帮助。谢谢你。

我试过 c(6,tail(d["b"],-1)) 但它不会产生 (6,5,6)。

输出

a  b  c
1  6  7
2  5  8
3  6  9

标签: r

解决方案


head改为使用

df$b <- c(6, head(df$b, -1))
#  a b c
#1 1 6 7
#2 2 5 8
#3 3 6 9

你也可以lag使用dplyr

library(dplyr)
df %>% mutate(b = lag(b, default = 6))

shiftdata.table

library(data.table)
setDT(df)[, b:= shift(b, fill = 6)]

推荐阅读