Вы можете просто вычесть data.frame, состоящий из строк 1:(n-1)
исходного data.frame, из второго, состоящего из строк 2:n
(Здесь n
- количество строк в исходном фрейме data.frame):
# Example data
df <- data.frame(a=1:4, b=4:1, c=11:14, d=c(2,4,10,0))
# a b c d
# 1 1 4 11 2
# 2 2 3 12 4
# 3 3 2 13 10
# 4 4 1 14 0
# Calculate the differences
diff_df <- df[-1,] - df[-nrow(df),]
diff_df
# a b c d
# 2 1 -1 1 2
# 3 1 -1 1 6
# 4 1 -1 1 -10
Затем вы можете переименовать строки по своему усмотрению, используя что-то вроде:
row.names(diff_df) <- paste("d", seq_len(nrow(diff_df)), sep="")
diff_df
# a b c d
# d1 1 -1 1 2
# d2 1 -1 1 6
# d3 1 -1 1 -10