R数据表行减法

时间:2019-01-25 15:42:30

标签: r

我有一个包含117个对象(行)和51个变量(列)的数据表。我想从上一行中减去每一行,并将结果发布到新的数据表中。

我的数据表是利率的时间序列,我想计算每日差额。

2 个答案:

答案 0 :(得分:1)

apply(dt, MARGIN = 2, diff)

将为每一列计算每个元素与上一个元素之间的差。 试试:

a = data.frame(matrix(c(1,1,1,3,3,3,7,7,7),byrow = T,nrow=3))
apply(a,2,diff)

答案 1 :(得分:0)

假设您将其作为示例数据:

df <- data.frame(date = as.Date(c("2019-01-03", "2019-01-04", "2019-01-05", "2019-01-06")), value = c(3,5,7,6))

        date value
1 2019-01-03     3
2 2019-01-04     5
3 2019-01-05     7
4 2019-01-06     6

然后使用dplyr中的tidyverse,您可以执行以下操作:

library(tidyverse)
df2 <- df %>% 
  mutate(difference = lag(value, n=1L) - value)

        date value difference
1 2019-01-03     3         NA
2 2019-01-04     5         -2
3 2019-01-05     7         -2
4 2019-01-06     6          1

...您只需要决定如何处理行索引1中的第一个NA。