给出以下数据表:
Category <- c('A','A','A','A')
Year <- c(0,1,2,3)
Amount1 <- c(0,100,200,300)
Amount2 <- c(0,30,40,0)
dt_1 <- data.table(Category, Year, Amount1, Amount2)
dt_1
如何将 amount2 移动一行以获得下表(最后一行用 0 填充)
Category <- c('A','A','A','A')
Year <- c(0,1,2,3)
Amount1 <- c(0,100,200,300)
Amount2 <- c(30,40,0,0)
dt_2 <- data.table(Category, Year, Amount1, Amount2)
dt_2
你需要
data.table::shift()
:
dt_1[, Amount2 := shift(Amount2, type="lead", fill=0)]
# Category Year Amount1 Amount2
# <char> <num> <num> <num>
# 1: A 0 0 30
# 2: A 1 100 40
# 3: A 2 200 0
# 4: A 3 300 0