R编程 - 如何找到特定行中两个值之间的差异

时间:2013-03-10 14:05:32

标签: r rows subtraction

所以你可以看到我的价格和日期列在下面

 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天的第1天价格....第10天的第5天价格......等等 我几天前发布了一个类似的问题......这里是链接:How to extract certain rows ....所有的答案都很有帮助,我之前尝试过但是看起来没有用?任何其他建议都会很棒:D 但我并没有真正得到我想要的输出....我有数据长达3000天....谢谢你

1 个答案:

答案 0 :(得分: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"]))