-2

所以正如你所看到的,我在下面有一个价格和日期列

 Price  Day
    2   1
    5   2
    8   3
    11  4
    14  5
    17  6
    20  7
    23  8
    26  9
    29  10
    32  11
    35  12
    38  13
    41  14
    44  15
    47  16
    50  17
    53  18
    56  19
    59  20

然后我想要下面的输出

  Difference    Day
    12  5
    15  10
    15  15
    15  20

基本上我每 5 天会有一次价格差异......它基本上只是从第一天减去第 5 天......然后从第 5 天减去第 10 天等等......我已经制作了一个代码,它将将我的数据分成 5 天的间隔......但我想要的代码可以让我减去第 5 天的价格......第 10 天的第 5 天价格......等等我发布了一个类似的问题几天前......这是链接:如何提取某些行......所有答案都很有帮助,我之前尝试过它们,但它们似乎不起作用?任何其他建议都会很棒:D 但我并没有真正得到我想要的输出......我有长达 3000 天的数据......谢谢你

4

1 回答 1

1

创建示例数据:

tmp <- structure(list(Price = c(2L, 5L, 8L, 11L, 14L, 17L, 20L, 23L, 
26L, 29L, 32L, 35L, 38L, 41L, 44L, 47L, 50L, 53L, 56L, 59L), 
    Day = 1:20), .Names = c("Price", "Day"), class = "data.frame", row.names = c(NA, 
-20L))

定义索引天数:

ind <- seq(5, nrow(tmp), by=5)

计算索引天数的差异,与实际天数匹配:

data.frame(day = tmp[ind, "Day"], diff = diff(tmp[c(1, ind), "Price"]))
于 2013-03-10T14:21:14.350 回答