2013-03-10 78 views
-2

所以你可以看到我有以下[R编程 - 如何找到两个值之间的差异在特定的行

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天的时间间隔......但是我希望代码能让我减去第一天的价格...... th é第10天与第5天的价格...等 我几天前发布了类似的问题...这里的链接:How to extract certain rows ....所有的答案是有益的,我有点之前尝试过,但他们似乎没有要工作?任何其他的建议将是巨大的:d 但我没有真正得到我想要的输出....我有高达3000天的数据....感谢ü

+1

@AndrewKibet,你为什么又问同样的问题?如果它不起作用,那么你应该在下面的回答中发表评论*特别是*不起作用; *不*创建一个新问题。 – Arun 2013-03-10 15:09:57

+1

回应@Arun,你应该能够提供一个*不同*的例子来复制你的问题。那些在你提供的样本数据集上工作的人,所以如果你没有分享你所做的来解决问题,我们真的不能做更多的事情。 – A5C1D2H2I1M1N2O1R2T1 2013-03-10 15:11:28

+0

对不起,但我试着发表评论,但没有出现......我的问题是当我尝试数据[c(1,seq(5,nrow(data),5)),] , diff(data [c(1,seq(5,nrow(data),5)),“Time”] .....我得到一个NULL结果...而不是DAY被分成5天间隔它的价格被分成5 ....:O – 2013-03-11 03:55:11

回答

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"])) 
+0

你如何得到这条线没有复制或粘贴任何东西?c(2L,5L,8L,11L,14L,17L,20L,23L, 26L,29L ,32L,35L,38L,41L,44L,47L,50L,53L,56L,59L) – 2013-03-11 03:56:21

+0

@AndrewKibet键入? – Ista 2013-03-11 15:25:29

相关问题